Methods and Systems for Metrics Analysis and Interactive Rendering, Including Events Having Combined Activity and Location Information

ABSTRACT

A method includes receiving location data of a monitoring device when carried by a user and receiving motion data of the monitoring device. The motion data is associated with a time of occurrence and the location data. The method includes processing the received motion data to identify a group of the motion data having a substantially common characteristic and processing the location data for the group of the motion data. The group of motion data by way of processing the location data provides an activity identifier. The motion data includes metric data that identifies characteristics of the motion data. The method includes transferring the activity identifier and the characteristics of the motion data to a screen of a device for display. The activity identifier being a graphical user interface that receives an input for rendering more or less of the characteristics of the motion data.

CLAIM OF PRIORITY

This application is a continuation of U.S. patent application Ser. No.13/959,681, filed on Aug. 5, 2013, titled “Methods and Systems forMetrics Analysis and Interactive Rendering, including Events havingCombined Activity and Location Information”, which is incorporated byreference herein in its entirety.

The application Ser. No. 13/959,681 claims the benefit of and priority,under 35 U.S.C. 119§(e), to a Provisional Patent Application No.61/680,230, filed on Aug. 6, 2012, and entitled “GPS ENABLED ACTIVITYAND SLEEP TRACKER,” which is incorporated by reference herein in itsentirety.

The application Ser. No. 13/959,681 is a continuation-in-part of U.S.patent application Ser. No. 13/693,334, published as U.S. PatentApplication Publication No. 20130096843, filed on Dec. 4, 2012, titled“Portable Monitoring Devices and Methods for Operating Same”, which is adivisional of U.S. patent application Ser. No. 13/667,229, filed on Nov.2, 2012, titled “Portable Monitoring Devices and Methods for OperatingSame”, which is a divisional of U.S. patent application Ser. No.13/469,027, now U.S. Pat. No. 8,311,769, filed on May 10, 2012, titled“Portable Monitoring Devices and Methods for Operating Same”, which is adivisional of U.S. patent application Ser. No. 13/246,843, now U.S. Pat.No. 8,180,591, filed on Sep. 27, 2011, which is a divisional of U.S.patent application Ser. No. 13/156,304, filed on Jun. 8, 2011, titled“Portable Monitoring Devices and Methods for Operating Same”, whichclaims the benefit of and priority to, under 35 U.S.C. 119§(e), to U.S.Provisional Patent Application No. 61/388,595, filed on Sep. 30, 2010,and titled “Portable Monitoring Devices and Methods for Operating Same”and to U.S. Provisional Patent Application No. 61/390,811, filed on Oct.7, 2010, and titled “Portable Monitoring Devices and Methods forOperating Same”, all of which are hereby incorporated by reference intheir entirety.

The application Ser. No. 13/959,681 is a continuation-in-part of U.S.patent application Ser. No. 13/759,485, published as U.S. PatentApplication Publication No. 20130151196, filed on Feb. 5, 2013, titled“Portable Monitoring Devices and Methods for Operating Same”, which is adivisional of U.S. patent application Ser. No. 13/667,229, filed on Nov.2, 2012, titled “Portable Monitoring Devices and Methods for OperatingSame”, which is a divisional of U.S. patent application Ser. No.13/469,027, now U.S. Pat. No. 8,311,769, filed on May 10, 2012, titled“Portable Monitoring Devices and Methods for Operating Same”, which is adivisional of U.S. patent application Ser. No. 13/246,843, now U.S. Pat.No. 8,180,591, filed on Sep. 27, 2011, which is a divisional of U.S.patent application Ser. No. 13/156,304, filed on Jun. 8, 2011, titled“Portable Monitoring Devices and Methods for Operating Same”, whichclaims the benefit of and priority to, under 35 U.S.C. 119§(e), to U.S.Provisional Patent Application No. 61/388,595, filed on Sep. 30, 2010,and titled “Portable Monitoring Devices and Methods for Operating Same”and to U.S. Provisional Patent Application No. 61/390,811, filed on Oct.7, 2010, and titled “Portable Monitoring Devices and Methods forOperating Same”, all of which are hereby incorporated by reference intheir entirety.

FIELD

The present disclosure relates to systems and methods for capturingactivity data over a period of time and associating the capturedactivity data into identification of locations of a user performingactivities.

BACKGROUND

In recent years, the need for health and fitness has grown tremendously.The growth has occurred due to a better understanding of the benefits ofgood fitness to overall health and wellness. Unfortunately, althoughtoday's modern culture has brought about many new technologies, such asthe Internet, connected devices and computers, people have become lessactive. Additionally, many office jobs require people to sit in front ofcomputer screens for long periods of time, which further reduces aperson's activity levels. Furthermore, much to today's entertainmentoptions involve viewing multimedia content, computer social networking,and other types of computer involved interfacing. Although such computeractivity can be very productive as well as entertaining, such activitytends to reduce a person's overall physical activity.

To provide users concerned with health and fitness a way of measuring oraccounting for their activity or lack thereof, fitness tracker are oftenused. Fitness trackers are used to measure activity, such as walking,motion, running, sleeping, being inactive, bicycling, exercising on anelliptical trainer, and the like. Usually, the data collected by suchfitness trackers can be transferred and viewed on a computing device.However, such data is often provided as a basic accumulation of activitydata.

It is in this context that embodiments described herein arise.

SUMMARY

Embodiments described in the present disclosure provide systems,apparatus, computer readable media, and methods for segmenting a periodof time into identification of locations of a user performingactivities. This segmentation provides a way of identifying particularactivities to particular locations. Using the segmentations, the systemsand methods can identify one or more events that may have occurredduring the period of time of activity. In one embodiment, the events canbe displayed on a screen of a device, and a user is able tointeractively view data concerning the events with contextualinformation, e.g., where certain events occurred.

In one embodiment, as described below, the events are automaticallyassociated with locations, and the locations can be associated withcontextual information concerning the locations. For instance, if atracking device detects certain activity at a particular location (e.g.,a map location), the mapping data or related databases can be queried todetermine that the map location corresponds to a golf course. The systemcan then generate information that is graphically presented to the user,concerning the particular tracked activity as corresponding to golfing.In some embodiments, the locations can be identified over time, e.g., byreceived user feedback (e.g., this is my home, this is a coffee shop,this is my work).

In some embodiments, the locations can be inferred or learned based onthe activities and times of day, and/or repeat activities over a periodof time (e.g., based on an identifiable pattern). For example, if theuser/tracker is typically experiencing low activity from 9:00 am and11:55 am, Monday-Friday, it can be inferred using a rules database andlearning logic that the user is at work or is working. In anotherembodiment, the user can be asked, “are you at work?” via a computingdevice or a tracking device, and based on the user's response, databasecan associate particular locations (e.g., geo-location) to particularactual location (e.g., work), and collect the activity data forpresentation along with the most appropriate location.

In some embodiments, an activity that is performed by a user is inferredbased on geo-locations of a monitoring device or a computing device usedby the user. For example, a processor of the monitoring device, of thecomputing device, of a server, or of a virtual machine determines basedon the geo-locations that a user is at a location, e.g., a gym, home,work, etc. The processor retrieves from an activity-location databaseone or more activities that may be performed by the user at thelocation. For example, the activity-location database indicates that theuser may be performing one or more activities, e.g., using a treadmill,using an elliptical trainer, lifting weights to build resistance,swimming laps, etc., while at a gym. As another example, theactivity-location database indicates that the user may be performing oneor more activities, e.g., walking, climbing stairs, descending stairs,sleeping, etc., while at home. The processor retrieves one or more ofthe activities from the activity-location database that correspond tothe location and determines that the user is performing one or more ofthe activities.

Broadly speaking, the systems and methods facilitate determination of anactivity level of an activity performed by a user at a location. Forexample, the systems and methods can determine that the user issedentary for a particular period of time when the user is at work. Asanother example, the systems and methods can determine that the user isactive when the user is at home. The activity or lack of activity istherefore contextually associated to a particular location. The systemsand methods determine activity levels of one or more activitiesperformed by the user during a period of time. The user can view theactivity levels of an activity performed at a location and decidewhether to perform a different activity at the location, to perform anactivity at another location, or to continue performing the activitywhen at the location. By providing the user location context toactivities, the user is able to better view his or her actual activityperformance and better health decisions can be made regarding and/oradjustments can be made in lifestyle. For instance, a user may find thatwalking to the train station can significantly improve his/her health,over taking a bus to the train. These simple decisions in activity canact to significantly increase a person's activity, but providing contextas to what and where activity is taking place can provide betterunderstanding as to how simple changes can have large impacts in overallfitness.

In some embodiments, a method includes receiving location data of amonitoring device when carried by a user. The method further includesreceiving motion data of the monitoring device. The motion data isassociated with a time of occurrence and the location data of themonitoring device. The method includes processing the received motiondata to identify a group of the motion data having a substantiallycommon characteristic and processing the location data for the group ofmotion data. The group of motion data, by way of processing the locationdata, provides an activity identifier. The motion data includes metricdata that identifies characteristics of the motion data for the activityidentifier. The method includes transferring the activity identifier andthe characteristics of the motion data to a screen of a device fordisplay. The activity identifier being a graphical user interface thatreceives an input for rendering more or less of the characteristics ofthe motion data.

In several embodiments, a method includes obtaining one or morelocations of a monitoring device when used by a user. The method furtherincludes determining one or more spatial positions of the monitoringdevice, determining one or more times of occurrence corresponding to thespatial positions and the locations, and characterizing a type of anactivity based on the times of occurrence, the locations, and thespatial positions. Examples of a type of activity include walking,running, swimming, sleeping, training on an elliptical trainer, etc. Theactivity includes metric data that indicates levels for the activity.

In various embodiments, a method includes receiving one or morelocations of a monitoring device, which is usable by a user. The methodfurther includes receiving one or more spatial positions of themonitoring device, receiving one or more times of occurrencecorresponding to the spatial positions and the geo-locations, anddetermining activity data based on the times of occurrence, thegeo-locations, and the spatial positions. The activity data includesmetric data that includes one or more activity levels. The activity dataincludes one or more classes of activities detected by the monitoringdevice. The method includes determining one or more locations of themonitoring device based on the times of occurrence, the geo-locations,and the spatial positions.

Other aspects will become apparent from the following detaileddescription, taken in conjunction with the accompanying drawings,illustrating by way of example the principles of embodiments describedin the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments described in the present disclosure may best beunderstood by reference to the following description taken inconjunction with the accompanying drawings in which:

FIG. 1A illustrates a variety of situations in which a system forsegmenting a period of time into identification of locations of a userperforming activities is used, in accordance with one embodimentdescribed in the present disclosure.

FIG. 1B is a diagram of a method for determining an amount of a type ofmovement of a monitoring device over a period of time, in accordancewith one embodiment described in the present disclosure.

FIG. 1C is a diagram of a method for determining an amount of anothertype movement of a monitoring device over a period of time, inaccordance with one embodiment described in the present disclosure.

FIG. 1D is a diagram of a method for determining an amount of yetanother type movement of a monitoring device over a period of time, inaccordance with one embodiment described in the present disclosure.

FIG. 1E is a diagram of a method for determining an amount of anothertype movement of a monitoring device over a period of time, inaccordance with one embodiment described in the present disclosure.

FIG. 2A is a diagram of a system for transferring data between amonitoring device and a server via a computing device and a network, inaccordance with one embodiment described in the present disclosure.

FIG. 2B is a diagram of an embodiment of a system for transferring databetween a monitoring device and the server via a mobile computing deviceand the network, in accordance with one embodiment described in thepresent disclosure.

FIG. 3A is a diagram of a system to illustrate components of amonitoring device, in accordance with one embodiment described in thepresent disclosure.

FIG. 3B is a diagram of a system to illustrate components of anothermonitoring device, in accordance with one embodiment described in thepresent disclosure.

FIG. 4A is an isometric view of a monitoring device that is worn arounda hand of a user or around a leg of the user, in accordance with oneembodiment described in the present disclosure.

FIG. 4B is an isometric view of another monitoring device that fits toan article of clothing or a belt worn by a user, in accordance with oneembodiment described in the present disclosure.

FIG. 4C is a view of yet another monitoring device that fits to anarticle of clothing or a belt worn by a user, in accordance with oneembodiment described in the present disclosure.

FIG. 4D is an isometric view of another monitoring device that fits toan arm of a user, in accordance with one embodiment described in thepresent disclosure.

FIG. 5 is a block diagram of a computing device, in accordance with oneembodiment described in the present disclosure.

FIG. 6A is a flowchart of a method for segmenting a period of time intoidentification of locations of a user performing activities, inaccordance with one embodiment described in the present disclosure.

FIG. 6B is a flowchart of another method for segmenting a period of timeinto identification of locations of a user performing activities, inaccordance with one embodiment described in the present disclosure.

FIG. 6C is a flowchart of yet another method for segmenting a period oftime into identification of locations of a user performing activities,in accordance with one embodiment described in the present disclosure.

FIG. 6D is a flowchart of a method for segmenting a period of time intoidentification of locations of a user performing activities, inaccordance with one embodiment described in the present disclosure.

FIG. 6E is a flowchart of another method for segmenting a period of timeinto identification of locations of a user performing activities, inaccordance with one embodiment described in the present disclosure.

FIG. 6F is a flowchart of a method for combining a map with event data,in accordance with one embodiment described in the present disclosure.

FIG. 7A is a graphical user interface (GUI) that displays one or moreevents and that is generated by executing the method of FIG. 6A, 6B, 6C,6E, or 6F, in accordance with one embodiment described in the presentdisclosure.

FIG. 7B is a diagram of another GUI that displays one or more events andthat is generated by executing the method of FIG. 6A, 6B, 6C, 6E, or 6Fin accordance with one embodiment described in the present disclosure.

FIG. 7C is a diagram illustrating a method for establishing boundariesbetween two locations arrived at by a user over one or more periods oftime, in accordance with one embodiment described in the presentdisclosure.

FIG. 7D is a diagram of a GUI to illustrate a method of allowing a userto choose a location in case of common geo-locations between multiplelocations, in accordance with one embodiment described in the presentdisclosure.

FIG. 7E is a diagram of a web page that includes a GUI that displays oneor more events and that is generated by executing the method of FIG. 6A,6B, 6C, 6E, or 6F, in accordance with one embodiment described in thepresent disclosure.

FIG. 7F is a zoom-in of a portion of a GUI to illustrate activity levelsof one or activities performed by a user over a period of time and toillustrate activity levels associated with one or more locations atwhich the activities are performed, in accordance with one embodimentdescribed in the present disclosure.

FIG. 7G is a diagram of a daily journal GUI that includes one or moreGUIs that include event data for periods of time, in accordance with oneembodiment described in the present disclosure.

FIG. 7H is a diagram of another daily journal GUI that includes one ormore GUIs that include event data for periods of time, in accordancewith one embodiment described in the present disclosure.

FIG. 7I is a GUI that provides an overview of one or more levels of oneor more activities performed by a user at one or more locations over aperiod of time, in accordance with one embodiment described in thepresent disclosure.

FIG. 7J is a diagram of a GUI that includes a detailed view ofactivities displayed in the GUI of FIG. 7I, in accordance with oneembodiment described in the present disclosure.

FIG. 7K is a diagram of a GUI that includes a more detailed view ofactivities displayed in the GUI of FIG. 7J, in accordance with oneembodiment described in the present disclosure.

FIG. 7L is a diagram illustrating a method of combining activity levelsover a period of time, in accordance with one embodiment described inthe present disclosure.

FIG. 7M is a diagram of a GUI that describes an aggregate level of oneor more activities performed by a user over a period of time, inaccordance with one embodiment described in the present disclosure.

FIG. 7N is a diagram of a pie-chart of locations at which a userperforms one or more activities and of percentages of activity levels atone or more locations over a period of time, in accordance with oneembodiment described in the present disclosure.

FIG. 7O is a diagram of a GUI that includes an overlay of a map on oneor more locations that a user visits during a period of time to performone or more activities performed by the user during a period of time, inaccordance with one embodiment described in the present disclosure.

FIG. 7P is a diagram of a web page that illustrates that a map isoverlaid on an event region to indicate a geo-location of a user at atime within a time period in which the user performs one or moreactivities, in accordance with one embodiment described in the presentdisclosure.

FIG. 7Q is a diagram of a GUI that includes a map below an event region,in accordance with one embodiment described in the present disclosure.

FIG. 7R is a diagram of a web page that is used to illustrate an overlayof event data on a map, in accordance with one embodiment described inthe present disclosure.

FIG. 7S is a diagram of a web page that is used to illustrate a zoom-inof a portion of the map of FIG. 7R and of activity data of an activityperformed by a user while the user is at the portion, in accordance withone embodiment described in the present disclosure.

FIG. 7T is a diagram of an embodiment of a web page that includes a GUIthat further includes an overlay of a map on a user's path, inaccordance with one embodiment described in the present disclosure.

FIG. 7U is a diagram of an embodiment of the web page of FIG. 7T toillustrate a zoom-in of a portion of the map of FIG. 7T and toillustrate activity data associated with the zoom-in, in accordance withone embodiment described in the present disclosure.

FIG. 7V is a diagram of an embodiment of a GUI that includes furtherdetails regarding the user's path of FIG. 7T, in accordance with oneembodiment described in the present disclosure.

FIG. 8 is a diagram of one or more location identifiers and one or moreactivity identifiers, in accordance with one embodiment described in thepresent disclosure.

FIG. 9 is a flowchart of a method for facilitating generation of acalendar of activities performed by a user and of locations at which theactivities are performed, in accordance with one embodiment described inthe present disclosure.

FIG. 10 is a flowchart of another method for generating a calendar ofactivities performed by a user and of locations at which the activitiesare performed, in accordance with one embodiment described in thepresent disclosure.

FIG. 11A is a flowchart of yet another method for generating a calendarof activities performed by a user and of locations visited by the userin performing the activities, in accordance with one embodimentdescribed in the present disclosure.

FIG. 11B is a continuation of the flowchart of FIG. 11A.

FIG. 12A is a flowchart of another method for generating a calendar ofactivities performed by a user and of locations visited by the user inperforming the activities, in accordance with one embodiment describedin the present disclosure.

FIG. 12B is a continuation of the flowchart of FIG. 12A.

FIG. 13 is a diagram of calendar GUIs, in accordance with one embodimentdescribed in the present disclosure.

FIG. 14 is a diagram of a calendar, in accordance with one embodimentdescribed in the present disclosure.

FIG. 15 is a diagram of another calendar, in accordance with oneembodiment described in the present disclosure.

FIG. 16 is a diagram of a calendar representing weeks of activitiesperformed by a user, in accordance with one embodiment described in thepresent disclosure.

FIG. 17 is a diagram of a GUI that includes a calendar GUI and a groupof event data, in accordance with one embodiment described in thepresent disclosure.

FIG. 18 is a diagram of another GUI that includes a calendar GUI, agroup of event data, and a map, in accordance with one embodimentdescribed in the present disclosure.

FIG. 19 is a diagram of an embodiment of a system for filtering calendardata based on filters provided by a user, in accordance with oneembodiment described in the present disclosure.

FIG. 20 is a diagram of a system for generating a metric, in accordancewith one embodiment described in the present disclosure.

FIG. 21 is a diagram of a system for editing a metric and changing atime associated with achieving a milestone, changing a locationidentifier, and changing an activity identifier based on the editedmetric, in accordance with one embodiment described in the presentdisclosure.

DETAILED DESCRIPTION

Embodiments described in the present disclosure provide systems,apparatus, computer readable media, and methods for analyzing trackedactivity data and segmenting/associating the activity data tocontextually identifiable locations where a user, wearing an activitytracker performed such activities. This segmentation provides a way ofidentifying events that associate the identified activities toparticular locations. In one embodiment, the data is collected from anactivity tracker and then transferred to a computing device. In someembodiments, the computing device can include a portable device, such asa smart phone, an internet connected watch, a tablet, a laptop, adesktop, etc. The computing device can then transfer the collectedactivity data to a server that is connected to the internet forprocessing.

In one embodiment, the term location refers to a geographic position.The geographic position can be identified on a map, identified on acoordinate identifier using global positioning data (e.g., GPS),identified using radio signal tower locator data (e.g., cell towers),identified using wireless internet router signal data (e.g., Wi-Fisignals), identified using router signal data for multi-flooridentification (e.g., floor-to-floor locator data), or combinationsthereof. In some embodiments, changes in location data includedetermining a difference between location identified data at varioustimes (e.g., every minute, every few minutes, every half hour, everyhour, at particular hour intervals or days). In some embodiments, thetime at which location data is obtained can vary depending on sensedactivity. For example, if less activity or motion is detected, fewerlocation data points need be taken.

In some embodiments, the various motions of the tracking device,movements, locations traversed, and activities performed, can allgenerate metric data. The metric data provides points of view ofunderstanding the various activities performed by a user that wears,holds, or carries the monitoring device. The metric data can beprocessed to define detailed views or characteristics of data, whichcharacterize the information in easy to understand forms. The metricdata can be generated on the fly as the user is producing trackable dataor from time to time. In some embodiments, the metric data is processedin accordance with rules or filters set by the user or set by thesystem. The rules or filters can define where the metric data is to bepopulated. For instance, the metric data can be populated to a screen ofthe tracking device itself, to a portable device (e.g., smart phone), orto any computer or computing device having access to the Internet.

In various embodiments, the processing of the data to produce metrics,can be done all or part on the local device (e.g., the monitoringdevice), all or part on a portable device, or all or part on a cloudbased computing system. The data, once processed can be provided tousers in various forms, on various GUIs, various form factors, using thesame or different graphics, or custom graphics, layouts or renderings asdefined by the user or set as defaults by the system. With this in mind,various examples of metric generation will now be described.

In one embodiment, the term location, location data, or locations mayrefer to one or more geographic positions. A geographic position can beidentified on a map, identified on a coordinate identifier using globalpositioning data (e.g., GPS), identified using radio signal towerlocator data (e.g., cell towers), identified using wireless internetrouter signal data (e.g., Wi-Fi signals), identified using router signaldata for multi-floor identification (e.g., floor-to-floor locator data),or combinations thereof. In some embodiments, changes in location datainclude determining a difference between location identified data atvarious times (e.g., every minute, every few minutes, every half hour,every hour, at particular hour intervals or days). In some embodiments,the time at which location data is obtained can vary depending on sensedactivity. For example, if less activity or motion is detected, fewerlocation data points need be taken.

The server can include one or more servers, which define a cloudprocessing system. The cloud processing a system includes logic, code,programs and/or software for processing the activity data to produce theidentifiable events. The cloud processing system can provide a systemfor creating user accounts for users and their activity trackers. Theuser accounts enable users to view graphical users interfaces (GUIs)that render and display the events identified using the tracked activitydata and the location data (e.g., geo-location data). Processing logicon the servers associated with the cloud processing system can processthe tracked data, can access other Internet services (e.g., mappingservices, social networking services, location context services, etc.,to enable formulation or identification of a location for particularactivities, which define an event). Broadly speaking, an event isdefined to include a location and an activity.

In one embodiment, the events can be displayed on a screen of a device,and a user is able to interactively view data concerning the events withcontextual information, e.g., where certain events occurred.

In some embodiments, locations can be automatically identified byaccessing mapping services and other online databases that identifylocations. The online databases can include mapping programs, data fromsocial networks, tagged data, crowd-sourced data, etc.

In some embodiments, the locations can be inferred or learned based onthe activities and times of day, and/or repeat activities over a periodof time (e.g., based on an identifiable pattern). Databases of rules areconstructed and such rules are refined over time. The rules are used toenable the system to infer locations and provide appropriate contextualidentification to the locations. In some embodiments, the rules canshape themselves using learning systems, and can be tailored forspecific users. In still other embodiments, learned patterns andbehaviors of other users can be used to collaboratively identify rules,shape rules or determine locations or identify locations. For instance,if multiple users tag a location as a coffee bar, this information canbe used to associate “coffee bar” to some range of geo-location. If overtime, the location starts to get tagged as a breakfast bar, the rulescan be adjusted to now associate that geo-location as “breakfast bar.”As businesses or location contexts change over time, so can the rules.

In various embodiments, the shape rules are used to associate one ormore geo-locations with a location. For example, a shape, e.g., acircle, a polygon, an oval, a square, etc., is used to identify alocation on a graphical user interface. The graphical user interface mayinclude event data, a route, a map, or a combination thereof. A userchanges a size via a user interface of a monitoring device or via aninput device of a computing device of a shape to change a number ofgeo-locations associated with the location. For example, a userincreases a size of a circle to include more geo-locations within alocation that is identified by the circle. As another example, a userdecreases a size of a polygon to exclude a number of geo-locations fromwithin a location that is identified by the polygon. As another example,a center of a shape is changed to associate a different set ofgeo-locations with a location than that already associated with thelocation. For example, a user drags via a user interface of a monitoringdevice or via an input device of a computing device a point associatedwith, e.g., a center of, a vertex of, etc., a shape to a different spoton a graphical user interface. When the point is dragged, the shape isalso dragged to the difference spot and is associated with a differenceset of geo-locations than that before the movement of the center. Thegraphical user interface may include event data, a route, a map, or acombination thereof.

In another embodiment, the user may be allowed to post details ofparticular locations. The user can identify locations with particularcustom identifiers, e.g., “mom's house” or can select from predefinedidentifiers. In still other embodiments, the user can be asked toidentify a location. In still another embodiment, the user can be askedvia custom queries, such as: “Are you at work?”; “Is this your home?”;“Are you driving?”; “Do you need medical assistance? if so, say or typehelp” etc. Or, the queries can be presented to the user at a later time,such as when the user is viewing his or her past activity on a GUI. Insome embodiments, the queries can be provided via a cloud program, whenaccessing a computer with cloud access, via push notifications, viavoice requests, etc. Based on this returned feedback, the servers anddatabases of the cloud service can learn or associate locationidentification to particular locations, which are later identified bydetecting the geo-location of the tracker.

In some embodiments, a user tags a location as being associated with aperson known to the user. For example, a user logs into his/her useraccount and tags a location as being Mom's house, Eric's house,Jessica's house, Buddy's gym, etc. Examples of a person known to theuser include a friend of the user, a work mate of the user, a specialinterest of the user, a relative of the user, an acquaintance of theuser, or a family member of the user. The user tags via an input deviceof a computing device or via a user interface of a monitoring device. Aprocessor, e.g., a processor of the monitoring device, a processor ofthe computing device, a processor of a server, a processor of a virtualmachine, or a combination thereof, etc., determines that the tagindicates that the user knows the person. For example, the term “Mom”indicates that the person is a mom of the user. As another example,“Eric” indicates that the person is a friend, a relative, or anacquaintance of the user. The processor determines whether the persontagged has a user account. The user account is used to display eventdata that includes activities performed by the person and/or locationsvisited by the person while performing the activities, etc. Theprocessor suggests to the user to add the person to a social group, e.g.a friend group, a work mate group, a special interest group, a relativegroup, an acquaintance group, a family member group, etc. When the useradds the person within the social group, the user account of the userindicates the addition of the person within the social group.

In general, the systems and methods facilitate determination of anactivity level of an activity performed by a user at a location. Forexample, the systems and methods can determine that the user issedentary for a particular period of time when the user is at work. Asanother example, the systems and methods can determine that the user isactive when the user is at home. The activity or lack of activity istherefore contextually associated to a particular location. The locationcan be an address, map, or a combination of maps, addresses, activities,and/or predefined location identifiers or activities that occur atparticular locations (e.g., golf occurs at a golf course, swimmingoccurs at a swimming pool, etc.). By providing the user location contextto activities, the user is able to better view his or her actualactivity performance and better health decisions can be made regardingand/or adjustments can be made in lifestyle.

In some embodiments, a calendar GUI is generated. The calendar GUIprovides an integrated visual display of a calendar with activitiesperformed by a user and metrics associated with the activities. Forexample, a calendar includes a number of steps walked by a user during aday, a latitude of a monitoring device, a longitude of a monitoringdevice, a latitude of a computing device, a longitude of a computingdevice, a speed of the user for a period of time, a name of a locationof the user, an address of a location of the user, a start time at whichthe user reaches a location, a start time at which the user startsperforming an activity, an end time at which the user leaves a location,an end time at which the user finishes performing an activity, a wake-uptime of the user on that day, a bed time of the user on that day, anamount of time spent by the user at his/her home, a length of time forwhich an activity is performed by the user, an amount of time spent bythe user performing an activity, an amount of time spent by the user ata location, an activity level at a location, an activity level of anactivity, an amount of time spent by the user at his/her work, an amountof time spent by the user in his/her vehicle, etc. In severalembodiments, a calendar provides the user with a summarized descriptionof the metrics. For example, a calendar describes that “You did not walkmuch today”, “You woke up late today”, “You ran a lot this week”, “Youdrove a lot this month”, “You went to bed early today”, etc. Each of“You did not walk much today”, “You woke up late today”, “You ran a lotthis week”, “You drove a lot this month”, and “You went to bed earlytoday” is an example of a sentence. The calendar helps the user viewhis/her activities. The user can view his/her activities and decidewhether to increase, decrease, or maintain an activity level to achievehealth and happiness.

In various embodiments, a start time of performing an activity isdetermined by a processor. For example, the processor of a monitoringdevice, a server, or a computing device receives a time at which anactivity level of the user changes from a first level to a second level.Upon determining that the activity level changed from the first level tothe second level, the processor receives, from a time measurementdevice, a time at which the activity level changed. Upon determiningthat the activity level changed at the time, the processor determinesthat the time is the start time at which the user started performing anactivity having the second activity level.

The processor may confirm that the user has started performing anactivity having the second activity level based on a geo-location of theuser. The processor obtains a geo-location from a device locator. Upondetermining that the geo-location corresponds to a location at which theactivity having the second activity level is usually performed, theprocessor determines that the user has started performing an activityhaving the second activity level.

In several embodiments, an end time of performing an activity isdetermined by a processor. For example, the processor of a monitoringdevice, a server, or a computing device receives a time at which anactivity level of the user changes from a third level to a fourth level.Upon determining that the activity level changed from the third level tothe fourth level, the processor receives, from a time measurementdevice, a time at which the activity level changed. Upon determiningthat the activity level changed at the time, the processor determinesthat the time is the end time at which the user finished performing anactivity having the third activity level.

The processor may confirm that the user has stopped performing anactivity having the third activity level based on a geo-location of theuser. Upon determining that the geo-location corresponds to a locationat which the activity having the third activity level is not usuallyperformed, the processor determines that the user has stopped performingan activity having the third activity level.

It should be noted that in a number of embodiments, a processordetermines a time of performing an activity as a time period between astart time at which the activity started and an end time at which theactivity finished.

In some embodiments, instead of each the first, second, third, andfourth activity levels, a statistical amount of activity level, e.g.,maximum activity level, average activity level, median activity level,etc., is used. For example, an average activity level averaged over aperiod of time is used to determine whether the user has started orstopped performing an activity.

In various embodiments, a processor determines a time for which the useris at a location as being equal to time of entry of the location by theuser and a time of exit of the location by the user.

In some embodiments, event data is represented with respect to thecalendar GUI. For example, the event data is shown below the calendarGUI. In various embodiments, a map or a route is overlaid on the eventdata or the calendar GUI. The route is a route showing activitiesperformed by a user and/or locations visited by the user whileperforming the activities.

In some instances, well known process operations have not been describedin detail in order not to unnecessarily obscure various embodimentsdescribed in the present disclosure.

FIG. 1A illustrates a variety of situations/activities in which a systemand/or method uses location data to segment a period of time intoidentifiable events, each event defining an activity for a period oftime. In one embodiment, location data is obtained for a time when theactivity is tracked, such as location data and/or characteristics of theactivity used to identify an event. As noted in detail below, a periodof time having associated tracking data can be segmented into one ormore events.

In the example of FIG. 1A, a user 112A wears a monitoring device 114A onhis arm while playing a sport, e.g., tennis Other examples of a sportinclude badminton, golf, running, bicycling, vehicle racing,racquetball, squash, soccer, etc. It should be understood that theexample of sports is provided, as such sports have particularidentifiable activity patterns. However, any activity, whether sportsrelated or not, can be tracked and associated to an event. For instance,another user 112B wears a monitoring device 114B on her arm whilewalking. Yet another user 112C wears a monitoring device 114C on his/herarm while doing yoga. Another user 112D wears a monitoring device 114Don his/her arm during sleep. Another user 112E wears a monitoring device114E on his/her arm while playing golf. Yet another user 112F wears amonitoring device 114F on his/her clothing part while riding a bicycle.Another user 112G wears a monitoring device 114G on his/her foot whilewalking a user 112H, e.g., a dog. In some embodiments, the user 112Gwalks other animals, e.g., a tiger, a cat, etc. The user 112H also wearsa monitoring device 114H on its arm. Another user 112I wears amonitoring device 114I on his arm during running.

In some embodiments, a user performs one or more of other activities,e.g., swimming, resistance training, rock climbing, skiing,snowboarding, hiking, skating, rollerblading, etc. It is noted that theactivities described herein are not limiting and that other activitiesmay be used.

It should be noted that in some embodiments, a user can wear, hold,append, strap-on, move, transport or carry a monitoring device whileperforming any type of activity, e.g., playing ping-pong, climbingstairs, descending stairs, hiking, sitting, resting, working, etc.Additionally, one user can be associated with more than one monitoringdevice, and such data can be processed and associated to the user'sactivity. In some embodiments, the data is selected from various devicesof the user based on a priority algorithm. In some embodiments, datafrom more than one device can be blended or alternated together todefine a more complete map of the activities.

Each monitoring device 114A, 114B, 114C, 114D, 114E, 114F, 114G, 114H,and 114I communicates with a network 176. In some embodiments, eachmonitoring device 114A, 114B, 114C, 114D, 114E, 114F, 114G, 114H, and114I communicates with the network 176 via a computing device, e.g., adesktop computer, a laptop computer, a smart phone, a tablet, a smartwatch, a smart television, etc.

Examples of the network 176 include the Internet and an Intranet. Thenetwork 176 may be a wide area network, a local area network, or acombination thereof. The network 176 may be coupled to one or moreservers, one or more virtual machines, or a combination thereof.

A server, a virtual machine, a controller of a monitoring device, or acontroller of a computing device is sometimes referred to herein as acomputing resource. Examples of a controller include a processor and amemory device.

As used herein, a processor includes an application specific integratedcircuit (ASIC), a programmable logic device (PLD), a processor, acentral processing unit (CPU), or a combination thereof, etc. Examplesof a memory device include a random access memory (RAM) and a read-onlymemory (ROM). A memory device may be a Flash memory, a redundant arrayof disks (RAID), a hard disk, or a combination thereof.

A computing resource performs data capture, which is reception ofactivity data from a monitoring device. Examples of activity datainclude, without limitation, calories burned by a user, blood pressureof the user, heart rate of the user, weight gained by a user, weightlost by a user, stairs ascended, e.g., climbed, etc., by a user, stairsdescended by a user, steps taken by a user during walking or running,hours spent traveling, floors descended by a user, floors climbed by auser, a number of rotations of a bicycle pedal rotated by a user,sedentary activity data, a distance covered by a user during walking,running, or driving a vehicle, a number of golf swings taken by a user,a number of forehands of a sport played by a user, a number of backhandsof a sport played by a user, or a combination thereof. In someembodiments, sedentary activity data is referred to herein as inactiveactivity data or as passive activity data. In some embodiments, when auser is not sedentary and is not sleeping, the user is active.

The data capture also includes capturing a geo-location of a monitoringdevice. For example, geographical location data 120A of the monitoringdevice 114A is determined by the monitoring device 114A and obtained bya computing resource. A geo-location is determined by a device locator,which is further described below. Examples of a geo-location includelatitude, radius, longitude, altitude, landmark, city, country, state,county, village, eatery, commercial place, commercial building,province, public place, or a combination thereof. In some embodiments,the geo-location data is obtained not by the monitoring device, but by acompanion device (e.g., such as a smart phone or other portable devicewith global positioning system (GPS) data collection capabilities).

In various embodiments, a device locator obtains a speed of a monitoringdevice or of a computing device. For example, a device locator of acomputing device determines a speed of the computing device and a devicelocator of a monitoring device determines a speed of the monitoringdevice. In various embodiments, a device locator of a device, e.g., amonitoring device, a computing device, etc., obtains an orientation ofthe device. In various embodiments, an orientation of a device includesa degree of rotation of the device with respect to an x axis, a y axis,and a z axis.

Similarly, geographical location data 120B of the monitoring device 114Bis determined by the monitoring device 114B and obtained by a computingresource, geographical location data 120C of the monitoring device 114Cis determined by the monitoring device 114C and obtained by a computingresource, geographical location data 120D of the monitoring device 114Dis determined by the monitoring device 114D and obtained by a computingresource, geographical location data 120E of the monitoring device 114Eis determined by the monitoring device 114E and obtained by a computingresource, geographical location data 120F of the monitoring device 114Fis determined by the monitoring device 114F and obtained by a computingresource, geographical location data 120G of the monitoring device 114Gis determined by the monitoring device 114G and obtained by a computingresource, geographical location data 120H of the monitoring device 114His determined by the monitoring device 114H and obtained by a computingresource, and geographical location data 120I of the monitoring device114I is determined by the monitoring device 114I and obtained by acomputing resource.

A geo-location of a monitoring device is used in conjunction withactivity data by a computing resource to perform data analysis. The dataanalysis is performed by a processor. For example, a level, e.g., anamount, etc., of an activity performed by a user at a geo-location isdetermined. Examples of activity level include a number of caloriesburned by a user, an amount of weight gained by a user, a heart rate ofa user, an amount of blood pressure of a user, an amount of weight lostby a user, a number of stairs ascended by a user, a number of stairsdescended by a user, a number of steps taken by a user during walking orrunning, a number of floors descended by a user, a number of floorsclimbed by a user, a number of rotations of a bicycle pedal rotated by auser, a distance covered by a vehicle operated by a user, a number ofgolf swings taken by a user, a number of forehands of a sport played bya user, a number of backhands of a sport played by a user, or acombination thereof, etc. The geo-location and the activity level arecombined and displayed to a user to monitor activity and/or health ofthe user over a period of time. As another example, a geo-location iscombined with an activity level to determine whether a user is still ata location, e.g., a house, a work place, an office, a gym, a sandwichshop, a coffee shop, etc. after performing the activity or has left thelocation after performing the activity. In this example, when it isdetermined that the user is at the location and the activity level hascrossed from a first side of a threshold to a second side of thethreshold, it is determined that the user has left the location.Moreover, in this example, when it is determined that the user is at thelocation and that the activity level has not crossed from the first sideto the second side, it is determined that the user is still at thelocation. In some embodiments, the first side of the threshold is belowthe threshold and the second side of the threshold is above thethreshold. In various embodiments, the first side of the threshold isabove the threshold and the second side is below the threshold.

In some embodiments, a user indicates to a monitoring device or acomputing device that the user has exited or entered a location. Forexample, the user logs into a user account and indicates via a userinterface of a monitoring device or an input device of a computingdevice that the user is exiting or entering a location. A processor,e.g., a processor of a server, a processor of a virtual machine, aprocessor of the computing device, or a processor of the monitoringdevice, or a combination thereof, etc., receives the indication from theuser. The processor determines a time at which the user indicates thatthe user is entering or exiting the location and indicates the time on agraphical user interface that includes event data. In variousembodiments, upon determining that the user has entered a location, theprocessor accesses the activity-location database to determine one ormore activities that may be performed by the user at the location andgenerates one or more activity identifiers of the activities.

In some embodiments, a computing resource performs data synchronization,which includes synchronization of activity data received from varioususers and synchronization of geo-locations of the users. For example,activity data from one user is displayed to another user when both theusers are within one location. As another example, activity data of oneuser is displayed to another user when both users are performing thesame activity, e.g., walking, running, etc. As yet another example,activity data of one user is displayed to another user when both usersare performing the same activity at the same location. As anotherexample, activity data is displayed to two or more users who performsimilar activities in disparate locations (e.g., a virtually sharedwalk).

In various embodiments, a computing resource recommends data to a userbased on activity data received from a monitoring device used by theuser and based on a location of the user. For example, when it isdetermined that a user is at a golf course and has not taken a number ofgolf swings, the recommendation data indicates to the user that the usermay take an additional amount of golf swings to achieve a goal. Asanother example, when it is determined that a user is not going to (oris unlikely to based on knowledge of the user's historical activitypatterns) reach his/her activity goal, e.g., walking a number of stepsover a time period, running a distance over a time period, climbing ordescending a number of stairs over a time period, bicycling for anamount of distance over a time period, bicycling for a number of pedalrotations of a bicycle over a time period, lifting a weight for a numberof times over a time period, hitting a forehand for a number of timesover a time period, hitting a backhand for a number of times over a timeperiod, etc., and it is determined that the user is at a location, thecomputing resource generates the recommendation data to indicate to theuser to perform an activity or to extend performing the activity at thelocation or at another location that is within a distance of thelocation. These recommendations can be provided as electronicnotifications to the user's device, the user's smart phone, to thetracking device, or some other user interface. The recommendations canalso be provided as voice notifications, in case the user is occupied ina task that limits viewing a screen, such as driving. The determinationthat the user is driving can be made using data regarding thespeed/motion of the device, location data (e.g., in a car), etc.

In some embodiments, a user may stand on a monitoring device thatdetermines a physiological parameter of the user. For example, a userstands on a scale that measures a weight, a body fat percentage, abiomass index, or a combination thereof, of the user.

FIG. 1B is a diagram of an embodiment of a method for determining anamount of movement 116A of the monitoring device 114G, e.g., a number ofstairs ascended by the monitoring device 114G, etc., over a period oftime t1. The amount of movement 116A occurs when the user 112A isperforming an activity of climbing stairs over the time period t1. Amethod of determining an amount of movement is performed by a positionsensor of a monitoring device. Additionally, the method cansimultaneously identify a location for the activity. The monitoringdevice 114G may be worn on the leg or foot (as depicted in FIG. 1B), orelsewhere on the body such as the wrist, forearm, upper arm, head,chest, or waist, or as an article of clothing such as a shirt, hat,pants, blouse, glasses, and the like.

A position sensor determines an amount of linear or angular movement ofan arm of a user or of another body part of a user. For example, aposition sensor determines that the user 112A wearing the monitoringdevice 114G on his leg has climbed a number of stairs, e.g., four,twenty, forty, etc., between positions A and B over the time period t1.

In some embodiments, instead of a number of stairs ascended, a positionsensor determines a number of stairs descended by the monitoring device114G.

FIG. 1C is a diagram of an embodiment of a method for determining anamount of movement 116B, e.g., an amount of distance traveled, a numberof steps traveled, etc., of the monitoring device 114E over a period oftime t2. For example, a position sensor determines that the user 112Awearing the monitoring device 114E on his hand has walked or ran anumber of steps, e.g., four, fifty, hundred, etc., between positions Cand D over the time period t2. The amount of movement 116B occurs whenthe user 112A is performing an activity of walking or running over thetime period t2.

FIG. 1D is a diagram of an embodiment of a method for determining anamount of movement 116C, e.g., an amount angular movement, etc., of themonitoring device 114E over a period of time t3. For example, a positionsensor determines that a hand of the user 112A wearing the monitoringdevice 114E on his/her hand is displaced by an angle over the timeperiod t3. The amount of movement 116C occurs when the user 112A isperforming a sports activity, e.g., golfing, playing tennis, playingping-pong, resistance training, etc., over the time period t3.

In some embodiments, a position sensor measures an angular displacementof a leg of the user 112A wearing the monitoring device 114G on his leg.

In various embodiments, a position sensor infers an activity performedby a user over a period of time based on one or more positions of amonitoring device that has the position sensor and that is worn by theuser. For example, upon determining that a difference between a first yposition and a second y position within a xyz co-ordinate system isgreater than an amount and that x positions between the two y positionsindicate a curved movement, a position sensor of a monitoring devicedetermines that the user 112A is playing golf. As another example, upondetermining that the user 112A covers less than a distance along anx-axis over a period of time, a position sensor of a monitoring deviceworn by the user 112A determines that the user 112A is walking and upondetermining that the user 112A covers more than the distance along thex-axis over the period of time, the position sensor determines that theuser 112A is running.

FIG. 1E is a diagram of an embodiment of a method for determining anamount of movement 116D, e.g., an amount angular movement, etc., of themonitoring device 114E over a period of time t4. For example, a positionsensor determines that the user 112A wearing the monitoring device 114Eon his/her hand is displaced by an angle over the time period t4. Theamount of movement 116D occurs when the user 112A is performing anactivity, e.g., a sports activity, an exercise activity, etc., over thetime period t4.

Examples of a period of time include a portion of a day, or a day, or aportion of a month, or a month, or a portion of a year, or a year, or aportion of a number of years, or a number of years.

FIG. 2A is a diagram of an embodiment of a system 250 for transferringdata, e.g., activity data, geo-location data, etc., between themonitoring device 114E and a server 228 via a computing device 164A andthe network 176. A wireless link 168 establishes a connection betweenthe monitoring device 114E and the computing device 164A. For example, aBluetooth device located within the monitoring device 114E establishes aBluetooth connection with a Bluetooth dongle interfacing with thecomputing device 164A via a Universal Serial Bus (USB) interface. Asanother example, an ad hoc Wi-Fi transmission and reception isestablished between a Wi-Fi adapter of the monitoring device 114E and aWi-Fi adapter of the computing device 164A. The wireless link 168 may bea Bluetooth or a Wi-Fi connection. A connection between the monitoringdevice 114E and the computing device 164A is used to transfer databetween the monitoring device 114E and the computing device 164A.

In some embodiments, a geo-location and/or a position determined by themonitoring device 114E is sent from the monitoring device 114E via thecomputing device 164A to a server or a virtual machine for processing,e.g., analysis, determining event data, etc. The server or the virtualmachine processes the geo-location and/or the position and sendsprocessed data, e.g., event data, maps, routes, etc., to the computingdevice 164A for display on the computing device 164A.

In some embodiments, instead of the wireless link 168, a wiredconnection is used between the monitoring device 114E and the computingdevice 164A.

Moreover, a wired connection 252 is established between the computingdevice 164A and the server 228 via the network 176. A wired connectionincludes network components, e.g., one or more routers, one or moreswitches, one or more hubs, one or more repeaters, one or more servers,one or more cables, or a combination thereof, etc.

The server 228 includes a processor 190, a network interface controller(NIC) 254 and a memory device 256. The processor 190 is coupled with thememory device 256 and the NIC 254. An example of a NIC includes anetwork interface card. In some embodiments, a modem is used instead ofa NIC.

The memory device 256 includes a user account 174 of the user 112A. Theuser 112A accesses the user account 174 when authentication information,e.g., username, password, fingerprints, footprints, thumbprints, or acombination thereof, etc., is authenticated by the processor 190 oranother server of the network 176. The authentication information isprovided by the user 112A via an input device, e.g., a mouse, a stylus,a keyboard, a keypad, a button, a touch screen, or a combinationthereof, etc., of a monitoring device or of a computing device.

The user account 174 is accessed by the user 112A to review graphicaluser interface (GUI) data 186 on a display device of the computingdevice 164A or of the monitoring device 114E. The GUI data 186 includesgeo-location data, a map, location in the form of location/activityidentifiers, activity data in the form of activity levels, and/orphysiological parameter of the user 112A. The activity data representsactivities performed by the monitoring device 114E. The processor 190associates, e.g., links, establishes a relationship between, etc.,geo-location data, location, activity data, and/or physiologicalparameter of the user 112A with the user account 174 to allow access ofthe geo-location data, activity data, a map, location, and/orphysiological parameter upon access of the user account 174. Thisrelationship provides context to the activity, both in terms of what theactivity was and where the activity occurred. This context can be usedto define events that occur over a period of time, and the events can bepresented on a GUI of a device, to provide useful information to a userregarding his or her activity over that period of time. Not only is theuser provide with activity data, but the activity data is displayed in agraphical or data organized manner that identifies segmented activitydata and associates it to the proper or inferred context.

In some embodiments, instead of using the monitoring device 114E toestablish the wireless connection 168, any other monitoring device, e.g.the monitoring device 114A (FIG. 1A) or a monitoring scale is used.

It should be noted that in several embodiments, data is transferred froma monitoring device via a computing device and the network 176 to avirtual machine instead of the server 228.

In some embodiments, instead of the wired connection 252, a combinationof a wireless connection and a wired connection is established.

In various embodiments, the user account 174 is stored in a memorydevice of a computing device or on a memory device of a monitoringdevice. In these embodiments, processing of a geo-location and/orposition is not done on the server 228 or a virtual machine to generateprocessed data, e.g., event data, location identifier, activityidentifier, etc. but is done by a processor of the computing deviceand/or by a processor of a monitoring device to generate the processeddata.

FIG. 2B is a diagram of an embodiment of a system 260 for transferringdata, e.g., activity data, geo-location data, etc., between themonitoring device 114E and the server 228 via a mobile computing device164B and the network 176. A wireless link 170 establishes a connectionbetween the monitoring device 114E and the mobile computing device 164B.The wireless link 170 may be a Bluetooth connection, a Wi-Fi connection,a near field connection, a radio frequency connection, or an opticalconnection, etc. In some embodiments, instead of the wireless link 168,a wired connection is used between the monitoring device 114E and themobile computing device 164B. A connection is used to transfer databetween the monitoring device 114E and the mobile computing device 164B.

Moreover, the server 228 and the mobile computing device 164B arecoupled with each other via a wireless connection 262, e.g., a Wi-Ficonnection, etc., the network 176, and a connection 264. The connection264 between the server 228 and the network 176 may be a wired or awireless connection.

FIG. 3A is a diagram of an embodiment of a system 270 to illustratecomponents of a monitoring device 108A. The system 270 includes themonitoring device 108A, a computing device 166, the network 176, and theserver 228.

The monitoring device 108A is an example of any of the monitoringdevices 114A, 114B, 114C, 114D, 114E, 114F, 114G, 114H, and 114I (FIG.1A). The monitoring device 108A includes an environmental sensor 272, aposition sensor 220, a time measurement device 232, a user interface274, a device locator 222, a display device 276, a processor 234, awireless communication device 278, and a memory device 280, all of whichare coupled with each other.

Examples of the device locator 222 include a GPS transceiver, a mobiletransceiver, etc. As used herein, a device locator may be referred to asa device or circuit or logic that can generate geo-location data. Thegeo-location data provides the appropriate coordinate location of thedevice or tracker, such as a location on a map or location in a room orbuilding. In some embodiments, a GPS device provides the geo-locationdata. In other embodiments, the geo-location data can be obtained fromvarious devices (e.g., cell towers, Wi-Fi device signals, other radiosignals, etc., which can provide data points usable to locate ortriangulate a location.

Examples of the environmental sensor 272 include a barometric pressuresensor, a weather condition sensor, a light exposure sensor, a noiseexposure sensor, a radiation exposure sensor, and a magnetic fieldsensor. Examples of a weather condition include a temperature, humidity,a pollen count, air quality, rain conditions, snow conditions, windspeed, a combination thereof, etc. Examples of light exposure includeambient light exposure, ultraviolet (UV) light exposure, or acombination thereof, etc. Examples of air quality include particulatecounts for varying sized particles, or level of carbon dioxide in air,or level of carbon monoxide in air, or level of methane in air, or levelof other volatile organic compounds in air, or a combination thereof.

Examples of the position sensor 220 include an accelerometer, agyroscope, a rotary encoder, a calorie measurement sensor, a heatmeasurement sensor, a moisture measurement sensor, a displacementsensor, an ultrasonic sensor, a pedometer, an altimeter, a linearposition sensor, an angular position sensor, a multi-axis positionsensor, or a combination thereof, etc. In some embodiments, the positionsensor 220 measures a displacement, e.g., angular displacement, lineardisplacement, a combination thereof, etc., of the monitoring device 108Aover a period of time with reference to an xyz co-ordinate system todetermine an amount of activity performed by the user 112A during theperiod of time. In some embodiments, a position sensor includes abiological sensor, which is further described below. In variousembodiments, a position sensor includes a motion sensor.

Examples of the time measurement device 232 include a watch, anoscillator, a clock, an atomic clock, etc. Examples of the userinterface 274 include an input device for interacting with the user112A. For example, the user interface 274 receives a selection of theGUI data 186 (FIG. 2A) from the user 112A. It should be noted that whenthe user interface 274 includes a touch screen, the touch screen 274 isintegrated within the display device 276.

Examples of a display device includes a liquid crystal display (LCD)device, a light emitting diode (LED) display device, a plasma displaydevice, etc. As an example, the display device 276 displays the GUI data186. In some embodiments, all GUIs described herein are displayed byrendering the GUI data 186.

Examples of the memory device 280 are provided above. Examples of thewireless communication device 278 include a Wi-Fi adapter, a Bluetoothdevice, etc.

In some embodiments, the processor 234 receives one or moregeo-locations measured by the device locator 222 over a period of timeand determines a location of the monitoring device 108A based on thegeo-locations and/or based on one or more selections made by the user112A via the user interface 274 and/or based on information availablewithin a geo-location-location database of the network 176. For example,the processor 234 determines that a location within thegeo-location-location database corresponds to one or more geo-locationsstored within the geo-location-location database. In this example, uponreceiving the geo-locations from the device locator 222, the processor234 determines the location based on the correspondence between thegeo-locations and the location in the geo-location-location database. Insome embodiments, the geo-location-location database includes a map of ageographical region, e.g., a city, a state, a county, a country, acontinent, a geographical area, world, etc. The map is generated by theserver 228 or another server based on one or more geo-locations.

The environmental sensor 272 senses and determines an environmentalparameter, e.g., a barometric pressure, a weather condition, an amountof light exposure, an amount of noise, an amount of radiation, an amountof magnetic field, or a combination thereof, etc., of an environment inwhich the monitoring device 108A is placed. The device locator 222determines a geo-location of the monitoring device 108A.

The time measurement device 232 determines an amount of time associatedwith one or more positions sensed by the position sensor 220, associatedwith one or more environmental parameters determined by theenvironmental sensor 272, associated with one or more geo-locationsdetermined by the device locator 222, and/or associated with one or morelocations determined by the processor 234. For example, the timemeasurement device 232 determines an amount of time for a number ofpositions that is reached by movement of the monitoring device 108A andthat is determined by the position sensor 220. As another example, thetime measurement device 232 determines an amount of time for a number ofgeo-locations reached by movement of the monitoring device 108A and thatis determined by the device locator 222.

The wireless communication device 278 establishes a wireless link withthe computing device 166 to send data, e.g., activity data, geo-locationdata, location data, a combination thereof, etc., to and/or receive thedata and/or instructions from the computing device 166. Each computingdevice 164A and 164B (FIGS. 2A & 2B) is an example of the computingdevice 166. The instructions from the computing device 166 may be tosend data, e.g., activity data, geo-location data, location data, acombination thereof, etc., to the computing device 166.

In some embodiments, the monitoring device 108A excludes the wirelesscommunication device 278. In these embodiments, the monitoring device108A communicates using a wired connection with the computing device166.

In various embodiments, the time measurement device 232 is integrated asa part of the position sensor 220 and/or as a part of the environmentalsensor 272 and/or as a part of the device locator 222.

In several embodiments, the monitoring device 108A excludes theenvironmental sensor 272.

In a number of embodiments, the monitoring device 108A includes abiological sensor coupled to the environmental sensor 272, the positionsensor 220, the time measurement device 232, the user interface 274, thedevice locator 222, the display device 276, the processor 234, thewireless communication device 278, and the memory device 280. Thebiological sensor is further described below.

FIG. 3B is a diagram of an embodiment of a system 290 to illustratecomponents of a monitoring device 108B. The system 290 includes themonitoring device 108B, the computing device 166, the network 176, andthe server 228. An example of the monitoring device 108B includes ascale. The monitoring device 108B is placed on a floor and the user 112Astands on the monitoring device 108B. The monitoring device 108Bincludes an environmental sensor 292, a biological sensor 294, a timemeasurement device 295, a user interface 296, a device locator 306, adisplay device 304, a processor 302, a wireless communication device300, and a memory device 298.

The environmental sensor 292 performs the same functions as that of theenvironmental sensor 272 (FIG. 3A) except that the environmental sensor292 is of a different, e.g., larger, smaller, etc., size compared to asize of the environmental sensor 272. In some embodiments, theenvironmental sensor 272 is used in the monitoring device 108B insteadof the environmental sensor 292.

The biological sensor 294 senses and determines a physiologicalparameter of the user 112A. For example, the biological sensor 294determines a weight of the user 112A. As another example, the biologicalsensor 294 determines a body mass index of the user 112A. As yet anotherexample, the biological sensor 294 determines a fingerprint or afootprint of the user 112A. As another example, the biological sensor294 determines a heart rate, a hydration level, a body fat, a bonedensity, and/or a bioimpedance of the user 112A. Examples of thebiological sensor 294 include a biometric sensor, a physiologicalparameter sensor, or a combination thereof.

The time measurement device 295 performs the same functions as that ofthe time measurement device 232 (FIG. 3A) except that the timemeasurement device 295 is different, e.g., larger, smaller, etc., insize compared to the time measurement device 232. As an example, thetime measurement device 295 determines an amount of time for a number ofphysiological parameters measured by the biological sensor 294.

In some embodiments, the time measurement device 232 is used in themonitoring device 108B instead of the time measurement device 295.

Similarly, the user interface 296 performs the same functions as that ofthe user interface 274 (FIG. 3A) and is of a different size than that ofthe user interface 274. In various embodiments, the user interface 274is used in the monitoring device 108B instead of the user interface 296.

Moreover, the memory device 298 performs the same functions as that ofthe memory device 280 (FIG. 3A) and is of a different size than that ofthe memory device 280. For example, the memory device 298 includes adifferent, e.g., larger, smaller, etc., number of memory cells comparedto memory cells of the memory device 280. In various embodiments, thememory device 280 is used in the monitoring device 108B instead of thememory device 298.

Also, the wireless communication device 300 performs the same functionsas that of the wireless communication device 278 (FIG. 3A) and is of adifferent size than that of the wireless communication device 278. Forexample, the wireless communication device 300 includes electricalcomponents that allow a transfer data at a different, e.g., higher,lower, etc., rate with the computing device 166 compared to a rate oftransfer of data between the wireless communication device 278 and thecomputing device 166. In various embodiments, the wireless communicationdevice 278 is used in the monitoring device 108B instead of the wirelesscommunication device 300.

Furthermore, the processor 302 performs the same functions as that ofthe processor 234 (FIG. 3A) and is of a different, e.g., larger,smaller, etc., size than that of the processor 234. For example, theprocessor 302 is of a size to achieve a different, e.g., higher, lower,etc., speed than that of the processor 234. In various embodiments, theprocessor 234 is used in the monitoring device 108B instead of theprocessor 302.

Moreover, the display device 304 performs the same functions as that ofthe display device 276 (FIG. 3A) and is of a different, e.g., larger,smaller, etc., size than that of the display device 276. In variousembodiments, the display device 276 is used in the monitoring device108B instead of the display device 304.

Also, the device locator 306 performs the same functions as that of thedevice locator 222 (FIG. 3A) and is of a different, e.g., larger,smaller, etc., size than that of the device locator 222. In variousembodiments, the device locator 222 is used in the monitoring device108B instead of the device locator 306.

In some embodiments, the monitoring device 108B includes a positionsensor (not shown) that performs the same functions as that of theposition sensor 220 (FIG. 3A). The position sensor of the monitoringdevice 108B is coupled to the environmental sensor 292, the biologicalsensor 294, the time measurement device 295, the user interface 296, thedevice locator 306, the display device 304, the processor 302, thewireless communication device 300, and the memory device 298. In variousembodiments, the position sensor 220 is implemented within themonitoring device 108B.

FIG. 4A is an isometric view of an embodiment of a monitoring device110A that is worn around a hand of a user or around a leg of the user.For example, the monitoring device 110A has a band that is unclasped toallow the monitoring device 110A to extend around a wrist of a user or aleg of the user. After the monitoring device 110A extends around thewrist, the band is clasped to fit the monitoring device 110A to thewrist of the user or to the leg of the user. As another example, themonitoring device 110A has an elastic band that is stretched to allow agrip of the monitoring device 110A to expand. The monitoring device 110Ais then slipped around a palm of a user to a wrist of the user or isslipped around a foot of the user to an ankle of the user. The elasticband is then released to fit the monitoring device 110A to the wrist ofthe user or the ankle of the user. In some embodiments, the monitoringdevice 110A is worn on a forearm or an upper arm of a user. In otherembodiments, the monitoring device can be carried, held, stored in abag, attached to a shoe, attached to a shirt or pants, etc. In otherembodiments, a single person can hold or wear multiple devices. Themultiple devices can track the same body part or object or cantrack/monitor multiple body parts, or objects. For instance, the usercan wear one on his/her wrist, one in a shoe, one on his pants, a hat, avisor, or any other object that can track some movement and/or locationof the user.

The monitoring device 110A includes a display screen 320 of a displaydevice that displays activity data of one or more activities performedby a user over a period of time, chronological data, geo-location data,or a combination thereof. Examples of a display screen include an LCDscreen, an LED screen, a plasma screen, etc. Examples of chronologicaldata include a time of day, a day, a month, a year, etc. The monitoringdevice 110A is an example of any of the monitoring devices 114A, 114B,114C, 114D, 114E, 114G, 114H, 114I (FIG. 1A), and 108A (FIG. 3A).

The monitoring device 110A includes one or more input devices thatallows a user to switch between displaying different types of data,e.g., from activity data to chronological data, from chronological datato activity data, from one type of activity data to another type ofactivity data, from geo-location data to activity data, from activitydata to geo-location data, etc., and to adjust or set chronologicaldata. Types of activity data include calories burned by a user, weightgained by a user, weight lost by a user, stairs ascended by a user,stairs descended by a user, steps taken by a user during walking orrunning, floors descended by a user, floors climbed by a user, rotationsof a bicycle pedal rotated by a user, distance covered by a vehicleoperated by a user, golf swings taken by a user, forehands of a sportplayed by a user, backhands of a sport played by a user, or acombination thereof, etc.

Again, it should be noted that in some embodiments, the monitoringdevice 110A is implemented as a watch, a wristband, or a bracelet, thatis worn/held by the user 112A.

FIG. 4B is an isometric view of an embodiment of a monitoring device110B that fits to an article of clothing or a belt worn by a user. Forexample, the monitoring device 110B has a pivoting clip that opens toallow the monitoring device 110B to extend with respect to a pocket of ashirt worn by a user. After the monitoring device 110B extends withrespect to the pocket, the clip is retracted to fit the monitoringdevice 110B to the pocket. The clip may be located between an upperportion 322 and a lower portion 324 of the monitoring device 110B toallow the upper portion 322 to extend from and pivot with respect to thelower portion 324.

The monitoring device 110B includes a display screen 326 that displaysactivity data, chronological data, geo-location data, or a combinationthereof. The monitoring device 110B is an example of the monitoringdevice 108A (FIG. 3A). The monitoring device 110B includes one or moreinput devices that allow a user to switch between displaying differenttypes of data and to adjust or set chronological data.

FIG. 4C is a view of an embodiment of a monitoring device 110C that fitsto an article of clothing or a belt worn by a user. For example, themonitoring device 110C has a flexible pivoting clip that opens to allowthe monitoring device 110C to extend with respect to a pocket of a pantworn by a user. After the monitoring device 110C extends around thepocket, the clip is retracted to fit the monitoring device 110C to thepocket. The clip may be located between an upper portion 328 and a lowerportion 330 of the monitoring device 110C to allow the upper portion 328to extend from and pivot with respect to the lower portion 330.

The monitoring device 110C includes a display screen 332 that displaysdata, e.g., activity data, chronological data, geo-location data, or acombination thereof, etc. The monitoring device 110C is an example ofthe monitoring device 108A (FIG. 3A). The monitoring device 110Cincludes one or more input devices that allow a user to switch betweendisplaying different types of data and to adjust or set chronologicaldata.

FIG. 4D is an isometric view of an embodiment of a monitoring device110D that fits with respect to an arm of a user. For example, themonitoring device 110D includes a hook and loop clasp that is extendedto loop around a wrist of a user and is then retracted to hook to thewrist. In some embodiments, the monitoring device 110D is implementedwithin a wrist watch. The monitoring device 110D includes a number ofbuttons 334A, 334B, and 334C to allow the monitoring device 110D toswitch between different types of data, e.g., geo-location data,location, chronological data, activity data, physiological parameter,etc., and to adjust or set chronological data.

The monitoring device 110D includes a display screen 336 that displaysactivity data, chronological data, geo-location data, physiologicalparameter, location data, the GUI data 186 (FIG. 2A), or a combinationthereof. The monitoring device 110D is an example of any of themonitoring devices 114A, 114 b, 114C, 114D, 114E, 114G, 114H, 114I (FIG.1A), and 108A (FIG. 3A).

It should be noted that in some embodiments, instead of beingimplemented as a watch, the monitoring device 110D is implemented as awristband or a bracelet that is worn by the user 112A.

Monitoring devices have shapes and sizes adapted for coupling to, e.g.,secured to, worn, etc., the body or clothing of a user. The monitoringdevices collect one or more types of physiological and/or environmentaldata from embedded sensors and/or external devices and communicate orrelay the data to other devices, including devices capable of serving asan Internet-accessible data sources, thus permitting the collected datato be viewed, for example, using a web browser or network-basedapplication. For example, while the user 112A is wearing or holding amonitoring device, the monitoring device may calculate and store theuser's step count using one or more sensors. The monitoring device thentransmits data representative of the user's step count to an account ona virtual machine, a computer, or a mobile phone, where the data may bestored, processed, and visualized by the user 112A.

Indeed, the monitoring device may measure or calculate a plurality ofactivity data and/or physiological parameters in addition to, or inplace of, the user's step count. These activity data and/orphysiological parameters include, but are not limited to, energyexpenditure, e.g., calorie burn, etc., floors climbed, floors descended,heart rate, heart rate variability, heart rate recovery, geo-location,elevation, speed and/or distance traveled, swimming lap count, swimmingstroke type and count detected, bicycle distance and/or speed, bloodpressure, blood glucose, skin conduction, skin temperature, bodytemperature, electromyography, electroencephalography, weight, body fat,caloric intake, nutritional intake from food, medication intake, sleepperiods, sleep phases, sleep quality, pH levels, hydration levels,respiration rate, or a combination thereof. The monitoring device mayalso measure or calculate parameters related to an environment aroundthe user 112A, such as, e.g., barometric pressure, weather conditions(e.g., temperature, humidity, pollen count, air quality, rain/snowconditions, wind speed, etc.), light exposure (e.g., ambient light, UVlight exposure, time and/or duration spent in darkness, etc.), noiseexposure, radiation exposure, magnetic field, or a combination thereof.

In some embodiments, the monitoring device quantifies work productivityagainst noise levels and/or against air quality and/or againsttemperature and/or against pressure and/or against humidity and/oragainst pollen count and the quantification is identified as a levelwithin event data. In several embodiments, the monitoring devicequantifies stress levels against noise levels and/or against an amountof time spent by the user 112A at work and/or against an amount of timespent by the user 112A exercising outside a work location and/or againstan amount of time spent by the user 112A in a gym and/or an amount oftime spent by the user 112A at his parent's home, and the quantificationis identified as a level within event data. In some embodiments, astress level is quantified, e.g., measured, determined, etc., based onheart rate variability (HRV) and/or galvanic skin response (GSR). TheHRV and/or the GSR are measured by a biological sensor.

Furthermore, a monitoring device or a computing device collating datastreams may calculate parameters derived from the activity data and/orphysiological parameters. For example, monitoring device or a computingdevice may calculate a user's stress and/or relaxation levels through acombination of heart rate variability, skin conduction, noise pollution,and sleep quality. In another example, a monitoring device or acomputing device may determine an efficacy of a medical intervention(e.g., medication) through a combination of medication intake, sleepand/or activity data. In yet another example, the monitoring device or acomputing device may determine an efficacy of an allergy medicationthrough the combination of pollen data, medication intake, sleep and/orother activity data.

FIG. 5 is a block diagram of an embodiment of the computing device 166.The computing device 166 includes a processor 226, a memory device 338,an input device 240, an input/output interface (I/O) 342, a devicelocator 344, a wireless communication device 346, an I/O 348, agraphical processing unit (GPU) 350, a display device 352, an I/O 354, aNIC 356, and an I/O 358, all of which are coupled to each other via abus 360.

An I/O is a parallel interface, a serial interface, or a USB interfacebetween two devices that are coupled to the I/O. For example, the I/O358 is an interface between the NIC 356 and the bus 360.

Examples of the processor 226 and the memory device 338 are providedabove. Moreover, examples of the input device 340 and the device locator344 are provided above. Furthermore, examples of the wirelesscommunication device 346, the display device 352, and the NIC 356 areprovided above. The GPU 350 executes a rendering technique to displaydata, e.g., GUI, web page, etc., on the display device 352.

The wireless communication device 346 receives geo-location data andactivity data from the wireless communication device 278 (FIG. 3A) ofthe monitoring device 108A and/or the wireless communication device 300(FIG. 3B) of the monitoring device 108B. The processor 226 determines agroup of activity data and a location/activity identifier based on theactivity data and the geo-location data.

In some embodiments, the computing device 166 includes a wiredcommunication device in addition to or instead of the wirelesscommunication device 300. Examples of the wired communication deviceinclude a USB interface, a parallel interface, and a serial interface.

In several embodiments, the user 112A provides via the user interface274 (FIG. 3A) of the monitoring device 108A to the processor 234 or viathe input device 340 (FIG. 5) of the computing device 166 to theprocessor 226 one or more locations, e.g., a home of the user 112A,coffee shop, work, gym, a home of a friend of the user 112A, a home of afamily member of the user 112A, a work place of the user 112A, a place,a street, a building, etc., that the user 112A visits over a period oftime. In some embodiments, the user 112A provides via the user interface274 (FIG. 3A) of the monitoring device 108A to the processor 234 or viathe input device 340 (FIG. 5) of the computing device 166 to theprocessor 226 a size of a location and a type of a location, e.g., workplace, sandwich place, pizza place, eatery, gym, golf course, park,running place, walking place, eating place, etc. Examples of a size of alocation include a number of floors within the location, a squarefootage of a location, a number of offices in the location, a number ofrooms in the location, a number of people that can fit in the location,a height of the location, a width of the location, a length of thelocation, a radius of a circle that identifies the location, a diameterof a circle that identifies the location, or a combination thereof.

The one or more locations, the type of location, and/or the size of thelocation received from the user 112A are sent by the monitoring device108A or by the monitoring device 108B via the computing device 166 andthe network 176 to the server 228 to be stored in thegeo-location-location database. In some embodiments, the one or morelocations, the type of location, and/or the size of the locationreceived from the user 112A are sent by the monitoring device 108A or bythe monitoring device 108B via the network 176 to the server 228 withoutusing the computing device 166 to be stored in the geo-location-locationdatabase.

In some embodiments, upon accessing the geo-location-location database,the processor 226 or the processor 234 determines that thegeo-location-location database does not include a location correspondingto one or more geo-locations visited by the user 112A over a period oftime. The processor 226 determines whether the user 112A is within aradius that includes one or more geo-locations of the user 112A. Upondetermining that the user 112A is within the radius for more than anumber of instances of time, the processor 226 generates a prompt toprovide to the user 112A via the display device 352 or the processor 234generates the prompt to provide to the user 112A via the display device276. The prompt requests the user 112A to provide the locationcorresponding to the one or more geo-locations that are within theradius and that are visited by the user 112A.

In a number of embodiments, the processor 234 determines that amongmultiple locations, a location within the geo-location-location databaseis closest to a geo-location of the user 112A wearing a monitoringdevice, and determines the location to correspond to thegeo-location-location of the user 112A.

In some embodiments, the processor 234 receives a selection, e.g., anexpansion of a bubble-shaped or another shaped graphical element ordisplayed on the display device 276, a contraction of a bubble-shaped oranother shaped graphical element displayed on the display device 276,etc., from the user 112A and the selection indicates that a locationcorresponds to a different set of geo-locations than that indicated bythe geo-location-location database. Upon receiving the selection, theprocessor 234 determines that the location corresponds to the differentset of geo-locations than that indicated by the geo-location-locationdatabase.

It should be noted that a graphical element has one or more graphicalproperties, e.g., a shape, a color, a shade, a texture, or a combinationthereof. For example, a graphical element includes a block, a line, abox, a dot, a pin, a circle, a bubble, or a combination thereof.

In various embodiments, the computing device 166 includes a positionsensor that is coupled to the bus 360. The position sensor is similar tothe position sensor 220 (FIG. 3A) except that the position sensormeasures positions of the computing device 166.

FIG. 6A is a flowchart of an embodiment of a method 102 for segmenting aperiod of time into identification of locations of a user performingactivities. The method 102 is executed by the monitoring device 108A(FIG. 3A).

The method 102 includes detecting, in an operation 104, an activity ofthe monitoring device 108A when the monitoring device 108A is worn bythe user 112A (FIG. 1A). It should be noted that when the monitoringdevice 108A is worn by the user 112A, the activity of the monitoringdevice 108A is the same as that of the user 112A. The activity includesan amount of movement of the monitoring device 108A and is performed fora period of time. In some embodiments, the activity includes a number ofcalories burned by the user 112A. Examples of the activity of the user112A detected by the monitoring device 108A include running, or walking,or jogging, or sleeping, or moving around, or a sports activity, orsleep, or a combination thereof.

The amount of movement of the user 112A includes an amount of movementof a body part of the user 112A. For example, the amount of movement ofthe user 112A includes an amount of stairs ascended by the user 112A, oran amount of stairs descended by the user 112A, a number of forehands ofa sport played by the user 112A, or a number of backhands of the sport,or a number of serves of the sport made by the user 112A, or a number oftimes a golf swing is made by the user 112A, or a number of times asoccer ball is kicked by the user 112A, or a number of times a ball isthrown by the user 112A, a number of rotations of a bicycle made by theuser 112A, or a number of times a paddle, e.g., a brake pedal, anaccelerator pedal, etc., of a vehicle is pushed by the user 112A, or anumber of times a hand movement is made by the user 112A, or a number oftimes a leg movement is made by the user 112A, or a number of times asteering wheel of a vehicle is rotated partially or fully by the user112A, or an amount of calories burned by the user 112A, or an amount ofdistance traveled by the user 112A, an amount of steps walked or ran bythe user 112A, or an amount of hours slept by the user 112A, or anamount of time for which the user 112A is active, or a combinationthereof.

The detection of the activity is performed by the position sensor 220(FIG. 3A) of the monitoring device 108A. For example, the positionsensor 220 determines the amount of movement of the user 112A. Theposition sensor 220 determines the amount of movement at each amount oftime, e.g., second, minute, hour, a fraction of a second, a fraction ofa minute, a fraction of an hour, etc., that is measured by the timemeasurement device 232 (FIG. 3A) of the monitoring device 108A.

The method 102 further includes obtaining, in an operation 118,geo-location data for the monitoring device 108A. For example, thegeo-location data includes a latitude, an altitude, and/or a longitudeof the monitoring device 108A. The geo-location data is obtained by thedevice locator 222 (FIG. 3A) of the monitoring device 108A. For example,signals are sent between the device locator 222 and another device,e.g., a cell tower, a satellite, etc., to determine a geo-location ofthe device locator 222, and the geo-location of the device locator 222is the same as a geo-location of the monitoring device 108A. Thegeo-location of the monitoring device 108A is the same as a geo-locationof the user 112A when the user 112A is wearing the monitoring device108A.

The method 102 also includes storing, in an operation 122, during theperiod of time of activity performed by the user 112A, the activity thatis detected in the operation 104 and the corresponding geo-location datathat is obtained in the operation 118. The geo-location data that isobtained in the operation 118 corresponds to the activity detected inthe operation 104 when the geo-location is obtained and the activity isdetected at the same time or during the same time period.

For example, when the user 112A wearing the monitoring device 108A isperforming an activity at a longitude 1 and a latitude 1, a geo-locationthat includes the longitude 1 and the latitude 1 corresponds to theactivity. In this example, the position sensor 220 determines that theuser 112A is performing the activity and the device locator 222determines that the user 112 is at the longitude 1 and latitude 1 at thesame time the user 112A is performing the activity. To furtherillustrate, the detected activity corresponds to the geo-location datawhen the activity is detected at a time the monitoring device 108A islocated at the geo-location.

The operation 122 of storing is performed by the memory device 280 (FIG.3A) of the monitoring device 108A or by a combination of the processor234 of the monitoring device 108A and the memory device 280 of themonitoring device 108A. For example, the processor 234 writes, e.g.,stores, etc., data to be stored in the memory device 280.

The method 102 further includes analyzing, in an operation 124, theactivity detected in the operation 104 and the correspondinggeo-location data obtained in the operation 118 to identify one or moreevents, e.g., an event 126 ₁, an event 126 ₂, an event 126 ₃, an event126 ₄, an event 126 ₅, an event 126 ₆, an event 126 ₇, an event 126 ₈,an event 126 ₉, an event 126 ₁₀, an event 128 ₁, an event 128 ₂, anevent 128 ₃, an event 128 ₄, an event 128 ₅, an event 128 ₆, etc., whichare described with reference to FIGS. 7A and 7E. The events 126 ₁, 126₂, 126 ₃, 126 ₄ 126 ₅, 126 ₆, 126 ₇, 126 ₈, 126 ₉, and 126 ₁₀ aredisplayed within an event region 730 of FIG. 7A. The events 128 ₁, 128₂, 128 ₃, 128 ₄, 128 ₅, and 128 ₆ are displayed within a GUI 394 (FIG.7E).

Each event occurs over a period of time. For example, the event 126 ₁occurs over a time period, e.g., from 12 AM to 8 AM, etc., and the event126 ₄ occurs over a time period, e.g., from a time between 8 AM and 9 AMto 3 PM, etc.

As further shown in FIG. 7A, each event 126 ₁, 126 ₂, 126 ₃, 126 ₄ 126₅, 126 ₆, 126 ₇, 126 ₈, 126 ₉, and 126 ₁₀ is a portion of a GUI 370,which is an example representation of the GUI data 186 (FIG. 2A). Forexample, each event 126 ₁, 126 ₂, 126 ₃, 126 ₄ 126 ₅, 126 ₆, 126 ₇, 126₈, 126 ₉, and 126 ₁₀ includes a textual and/or a graphical data portionof the GUI 370. To further illustrate, the event 126 ₄ includes agraphical data portion that shows activity levels, e.g., amounts, etc.,of an activity performed by the user 112A. Moreover, in thisillustration, the event 126 ₄ includes a time period during which theactivity is performed and indicates the activity, e.g., golfing, etc. Inthis illustration, the activity indicates a location, e.g., a golfcourse. As another illustration, the event 126 ₆ includes a graphicaldata portion that shows activity levels of an activity performed by theuser 112A. Moreover, in this illustration, the event 126 ₆ includes atime period during which the activity is performed and includes alocation, e.g., a home of the user 112A, etc., at which the activity isperformed.

Each event is associated, e.g., linked, corresponded, related, etc.,with a group of activity data and each group of activity data isassociated, e.g., linked, corresponded, etc., related, with alocation/activity identifier. For example, referring to FIG. 7A, theevent 126 ₄ includes a group 130A of activity data and the event 126 ₆includes a group 130B of activity data. The group 130A includes activitylevels of an activity performed by the user 112A during a period of timeand the group 130A is associated with a location/activity identifier132D. Similarly, the group 130B includes activity levels of an activityperformed by the user 112A during a period of time, e.g., a time periodbetween a time between 3 pm and 4 pm and a time between 5 pm and 6 pm,etc., and the group 130B is associated with a location/activityidentifier 132A.

Moreover, similarly, a group of activity data of the event 126 ₁ isassociated with the location/activity identifier 132A, a group ofactivity data of the event 126 ₂ is associated with a location/activityidentifier 132B, a group of activity data of the event 126 ₃ isassociated with a location/activity identifier 132C, a group of activitydata of the event 126 ₅ is associated with the location/activityidentifier 132C, a group of activity data of the event 126 ₇ isassociated with the location/activity identifier 132C, a group ofactivity data of the event 126 ₈ is associated with thelocation/activity identifier 132A, a group of activity data of the event126 ₉ is associated with a location/activity identifier 132C, and agroup of activity data of the event 126 ₁₀ is associated with alocation/activity identifier 132A. Furthermore, with reference to FIG.7E, a group of activity data of the event 128 ₁ is associated with alocation/activity identifier 134A and a group of activity data of theevent 128 ₃ is associated with a location/activity identifier 134B. Agroup of activity data is associated with a location/activity identifierto provide a context as to which activity is performed and where. Forexample, an amount of calories burned by a user are displayed in abackground in which an icon representing an activity of walkingperformed by the user is shown and/or an icon representing a public parkis shown. The amount of calories is burned when the user is walkingand/or in the public park and/or is walking in the public park.

Referring back to FIG. 6A, a location/activity identifier is generatedby the processor 234 using the geo-location data, which is obtained inthe operation 118, and/or activity data, which is obtained in theoperation 104. For example, the processor 234 (FIG. 3A) of themonitoring device 108A determines that the geo-location-locationdatabase indicates a correspondence between a location of the user 112Aand a set that includes one or more longitudes at which an activity isperformed by the user 112A, one or more latitudes at which the activityis performed, and/or one or more altitudes at which the activity isperformed, and assigns the location/activity identifier 132D torepresent the location. As another example, the processor 234 determinesthat a distance traveled by the user 112A in a period of time is withinan upper limit and a lower limit The period of time is received from thetime measurement device 232 of the monitoring device 108A. The distancetraveled by the user 112A is received from the position sensor 220and/or the device locator 222 of the monitoring device 108A. As anotherexample, the processor 234 receives a selection from the user 112A viathe user interface 274 (FIG. 3A) of the monitoring device 108A that oneor more geo-locations at which the user 112A performs an activitycorrespond to a location of the user 112A, and assigns alocation/activity identifier to represent the location.

The operation 124 is performed by the processor 234 (FIG. 3A) based onthe activity detected in the operation 104 and/or the geo-location dataobtained in the operation 118, and a time period during which theactivity is performed. The processor 234 receives one or more amounts oftime of performance of an activity during a time period from the timemeasurement device 232 (FIG. 3A), and/or receives one or moregeo-locations at which the activity is performed during the time periodfrom the device locator 222 (FIG. 3A), and receives one or more activitylevels of the activity from the position sensor 220 (FIG. 3A) to performthe operation 124. For example, the processor 234 determines that theuser 112A is in a vehicle upon determining that a speed of travel of theuser 112A is greater than s₁ miles per hour. The speed s₁ is a runningor walking speed of one or more users. The processor 234 determines aspeed of travel of the user 112A based on geo-location data obtained inan hour of one or more geo-locations of the user 112. Geo-location datais received from the device locator 222 (FIG. 3A) of the monitoringdevice 108A and a measurement of the hour is received from the timemeasurement device 232 (FIG. 3A).

As another example, the processor 234 determines whether the user 112Ais in a vehicle, or is riding a bicycle or a skateboard, or isundergoing ambulatory motion based on a speed of the user 112A andmotion of a body portion of the user 112A. To illustrate, when theprocessor 234 determines that a speed of the user 112A is greater than apre-determined number of miles per hour and motion of the body portionis less than a pre-determined amount of motion, the processor 234determines that the user 112A is in a vehicle and is not walking orrunning As another illustration, when the processor 234 determines thata speed of the user 112A is less than the pre-determined number of milesper hour and motion of the body portion is greater than thepre-determined amount of motion, the processor 234 determines that theuser 112A is performing the ambulatory motion. Examples of ambulatorymotion include walking, running, jogging, exercising, etc. An example ofthe body portion includes an arm of the user 112A. In variousembodiments, a speed of the user 112A is determined by a device locatoror a processor based on an amount of distance between two geo-locationsand time of the user 112A at each of the geo-locations. In someembodiments, a speed of the user 112A is determined by a position sensoror a processor based an amount of distance between two positions andtime of occurrence of each of the positions.

As yet another example, the processor 234 determines that the user 112Ais running upon determining that a speed of travel of the user 112A isgreater than s₂ miles per hour and a number of steps taken by the user112A is greater than ss₁ per hour. The speed s₂ is a walking speed ofone or more users. A number of steps are received by the processor 234from the position sensor 220 (FIG. 3A) of the monitoring device 108A. Asanother example, the processor 234 determines that the user 112A iswalking upon determining that a number of steps taken by the user 112Ais less than ss₁ per hour and greater than ss₂ per hour. As yet anotherexample, the processor 234 determines that the user 112A is in a vehicleupon determining that a speed of travel of the user 112A is greater thans₃ miles per hour and a number of steps taken by the user 112A is lessthan ss₃ per hour.

As another example, the processor 234 determines that the user 112A ismoving around upon determining that a number of steps taken by the user112A is less than ss₄ per hour. As yet another example, the processor234 determines that the user 112A is sedentary upon determining that theuser 112A is not walking, running, not moving around, and not in avehicle. As another example, the processor 234 determines that the user112A is sleeping upon determining that the user 112A is sedentary forgreater than an amount of time.

In some embodiments, the processor 234 determines a speed of travel ofthe user 112A based on geo-location data obtained over a period of timeof one or more geo-locations of the user 112 and the period of time.

The time period during which the activity is performed at a location isdetermined by the processor 234 based on a sum of amounts of timemeasured by the time measurement device 232 for performing the activityat one or more geo-locations corresponding to, e.g., included within,linked with, etc., the location.

The operation 124 of analyzing the detected activity and thecorresponding geo-location data during the period of time includesdetermining a time element of segregation of the activity detected atthe operation 104. For example, a period of time during which anactivity is performed is segmented into one or more time elements. Asanother example, a period of time during which an activity is performedis segmented into one or more time elements, and each time elementincludes a graphical property and/or text to represent the time element.Examples of a time element include a fraction of a minute, or a minute,or a fraction of an hour, or an hour, etc. Further examples of a timeelement are shown as a time element 144 ₁ and a time element 144 ₂ inFIG. 7A. The time element 144 ₁ is a time of day at which a golfactivity having an activity level is performed by the user 112A.Moreover, the time element 144 ₂ is another time of day at which a golfactivity having an activity level is performed by the user 112A. Theactivity level at the time element 144 ₂ is lower than the activitylevel at the time element 144 ₁. In some embodiments, the activity levelat the time element 144 ₂ is higher than or the same as the activitylevel at the time element 144 ₁. The time element 144 ₁ includes text,e.g., 9 AM, etc.

The operation 124 of analyzing the detected activity and thecorresponding geo-location data during the period of time furtherincludes determining an activity level for each time element. Forexample, an activity level 146 ₁ (FIG. 7A) is determined as beingperformed at the time element 144 ₁ and an activity level 146 ₂ (FIG.7A) is determined as being performed at the time element 144 ₂. Asanother example, the activity level 146 ₁ (FIG. 7A) is determined asbeing performed at the time element 144 ₁ and is determined to includetext and/or a graphical property, e.g., a dark gray bar, etc., and theactivity level 146 ₂ (FIG. 7A) is determined as being performed at thetime element 144 ₂ and is determined to include text and/or a graphicalproperty, a dark gray bar, etc.

The operation 124 of analyzing the detected activity and thecorresponding geo-location data during the period of time also includesdetermining a location/activity identifier of a location and/or activityfor each time element and for each activity level. For example, theprocessor 234 determines that an activity level that occurs at a timeelement is of an activity that occurs at one or more geo-locations thatcorrespond to a location and/or that correspond to an activity, e.g., ahome of the user 112, a building, a park, an office, golfing, walking,running, a commercial place, an eatery, a work place, a vehicle, a golfcourse, a sandwich shop, or any other location, etc., and determines alocation/activity identifier that represents the location and/oractivity.

As another example, the processor 234 determines that the activity level146 ₁ is of an activity that occurs at one or more geo-locations of agolf course and determines the location/activity identifier 132D thatrepresents golfing. In this example, the processor 234 accessescorrespondence between geo-location data and location data stored withinthe geo-location-location database to determine whether the one or moregeo-locations correspond to the golf course and/or also accessesposition data of the monitoring device 108A from the position sensor 220to determine that the activity is golfing. As yet another example, theprocessor 234 determines that the activity level 146 ₂ is of an activitythat occurs at one or more geo-locations of a golf course and determinesthe location/activity identifier 132D. In this example, the processor234 applies a selection received from the user 112A via the userinterface 274 (FIG. 3A) to determine that one or more geo-locations atwhich the activity level 146 ₂ occurs correspond to a golf course. Inthis example, the geo-locations at which the activity level 146 ₂ occursare the same or different from one or more geo-locations determined bythe processor 234 from the geo-location-location database to correspondto a golf course.

Examples of a location/activity identifier include a graphical element,e.g. an icon, an icon having a pointer, a symbol, a symbol having apointer, a trademark, a trademark having a pointer, a registered mark, aregistered mark having a pointer, an animation icon, an animation iconhaving a pointer, an animation, an animation having a pointer, a videoicon, a video icon having a pointer, a video, a video having a pointer,an audio icon, an audio icon having a pointer, an audio, an audio havinga pointer, a multimedia icon, a multimedia icon having a pointer, amultimedia, a multimedia having a pointer, or a combination thereof,etc., that represents a location at which the activity is performed.

A location/activity identifier has a graphical element and/or text. Forexample, the location/activity identifier 380B includes an icon of aperson walking. As another example, the location/activity identifier380D includes an icon of a person golfing with a golf club.

The operation 124 of analyzing the detected activity and thecorresponding geo-location data during the period of time furtherincludes associating the activity level with the time element and thelocation/activity identifier. Upon determining the location/activityidentifier for each time element and for each activity level, theprocessor 234 associates, e.g., establishes a link between, establishesa correspondence between, etc., the time element and the activity levelwith the location/activity identifier. For example, the processor 234establishes a link between the time element 144 ₁, the activity level146 ₁, and the location/activity identifier 132D. As another example,the processor 234 establishes a link between the time element 144 ₂, theactivity level 146 ₂, and the location/activity identifier 132D.

The operation 124 of analyzing the detected activity and thecorresponding geo-location data during the period of time also includesaggregating the associated activity levels and time elements over theperiod of time to indicate, using the associated location/activityidentifier, a location of occurrence of the activity levels and of agroup of activity data. The group of activity data includes the activitylevels and the period of time. The processor 234 aggregates, e.g.,combines, accumulates, etc., over a period of time the activity levelsand time elements that are associated with a location/activityidentifier of an activity. The period of time over which the processor234 aggregates is continuous, e.g., from 1 pm to 2 pm on a day, fromJanuary to February of a year, from year 2000 to year 2004 of a decade,etc.

The aggregated activity levels, time elements, and the associatedlocation/activity identifier are represented, by the processor 234,within one or more graphical elements and/or text of a background thatrepresent an event to generate or identify the event. For example, theprocessor 234 assigns one or more graphical elements to an area, withinthe GUI 370 (FIG. 7A), to generate the event 126 ₄ that includes thegroup 130A of activity data, the location/activity identifier 380D and abackground 150, e.g., a gray-shaded area, a shaded area, an area havinga graphical property, etc. The group 130A of activity data and thelocation/activity identifier 380D are overlaid on the background 150.The event 126 ₄ includes the time element 144 ₁ aligned, e.g.,vertically, horizontally, oblique, etc., with the activity level 146 ₁and further includes the location/activity identifier 132D including orattached to a pointer 380D. The pointer 380D points to the event 126 ₄that includes the activity level 146 ₁ and the time element 144 ₁.Similarly, as shown in FIG. 7A, a pointer 380A that is included withinor is attached to the location/activity identifier 132A points to theevent 126 ₁, a pointer 380B that is included within or is attached tothe location/activity identifier 132B points to the event 126 ₂, and apointer 380C that is included within or is attached to thelocation/activity identifier 132C points to the event 126 ₃.

It should be noted that in some embodiments, a location/activityidentifier does not include and is not attached to a pointer. Forexample, the event 126 ₄ includes the location/activity identifier 132Dwithout the pointer 380D.

In various embodiments, a group of activity data includes alocation/activity identifier in addition to one or more activity levelsand one or more time elements. For example, the group 130A of activitydata includes one or more activity levels, one or more time elements,and the location/activity identifier 380D.

In several embodiments, each activity level is assigned a graphicalproperty by the processor 234. For example, as shown in FIG. 7A, theactivity level 146 ₁ is assigned a graphical property 148 ₁ and theactivity level 146 ₂ is assigned a graphical property 148 ₂. Thegraphical property 148 ₂ may be the same or different from the graphicalproperty 148 ₁. For example, the graphical property 148 ₂ has the samecolor as that of the graphical property 148 ₁. As another example, thegraphical property 148 ₂ has the same texture and color as that of thegraphical property 148 ₁.

In some embodiments, the method 102 is performed by the monitoringdevice 108B (FIG. 3B) except instead of the operation 104, thebiological sensor 294 performs an operation of detecting a physiologicalparameter of the user 112A who is located on the monitoring device 108B.Moreover, in these embodiments, the operation 118 of obtaininggeo-location data for the monitoring device 108B is performed by thedevice locator 306 (FIG. 3B). Further, in these embodiments, theoperation 122 of storing the detected physiological parameter and thecorresponding geo-location data is performed by the processor 302 (FIG.3B) or by a combination of the processor 302 and the memory device 298(FIG. 3B). In these embodiments, the operation 124 of analyzing thedetected physiological parameter and the corresponding geo-location dataduring the period of time to identify one or more events is performed bythe processor 302 (FIG. 3B) of the monitoring device 108B.

FIG. 6B is a flowchart of an embodiment of a method 160 for segmenting aperiod of time into identification of locations of a user performingactivities. The method 160 is executed by the monitoring device 108A(FIG. 3A). In the method 160, the operations 104, 118, and 122 areperformed.

The method 160 includes transferring, e.g., sending, etc., in anoperation 162, from time to time, to the computing device 166 (FIG. 5)the activity that is detected at the operation 104 and that correspondsto the geo-location data that is obtained at the operation 118. Forexample, activity data is transferred periodically, e.g., every fractionof a second, every second, every minute, every fraction of a minute,etc., or aperiodically, e.g., randomly, etc., to the computing device166 upon reception of request from the computing device 166.

The operation 162 of transferring is performed by the wirelesscommunication device 278 (FIG. 3A) via a wireless link, e.g., thewireless link 168 (FIG. 2A), the wireless link 170 (FIG. 2B), etc.,between the monitoring device 108A (FIG. 3A) and the computing device166. For example, the wireless communication device 278 executes aBluetooth or a Wi-Fi protocol to transfer data to the computing device166 via a wireless link. In some embodiments in which a wired link isused between the monitoring device 108A and the computing device 166,the operation 162 of transferring is performed by a wired communicationdevice of the monitoring device 108A and the wired communication deviceis connected via a wired link to the wired communication device of thecomputing device 166. In various embodiments, the wireless communicationdevice 278 transfers data via a wireless communication link and thenetwork 176 (FIG. 3A) to the server 228 (FIG. 3A) without transferringdata via the computing device 166. In several embodiments, a wiredcommunication device of the monitoring device 108A transfers via a wiredcommunication link and the network 176 to the server 228 withouttransferring data via the computing device 166. For example, the wiredcommunication device of the monitoring device 108A executes acommunication protocol, e.g., a Transmission Control Protocol overInternet Protocol (TCP/IP), a User Datagram Protocol over InternetProtocol (UDP/IP), etc., to communicate data with the server 228 via thenetwork 176.

In some embodiments, the operations 104, 118, and 112 are performed bythe monitoring device 108B (FIG. 3B) with the changes described abovewith respect to the method 102 (FIG. 6A). Moreover, in theseembodiments, the operation 162 of transferring, from time to time, thedetected activity corresponding to the geo-location data to thecomputing device 166 is performed by the wireless communication device300 of the monitoring device 108B or by a wired communication device ofthe monitoring device 108B.

FIG. 6C is a diagram of an embodiment of a method 170 for segmenting aperiod of time into identification of locations of a user performingactivities. The method 170 is executed by the server 228 (FIGS. 2A &2B). The method 170 includes an operation 172 of enabling access to theuser account 174 (FIG. 2A) via the computing device 166 (FIG. 5) overthe network 176 (FIG. 2A). The processor 190 (FIG. 2A) of the server 228performs the operation 172 of enabling access to the user account 174.

The user 112A (FIG. 1A) uses the user interface 274 (FIG. 3A) of themonitoring device 108A or the input device 340 (FIG. 5) of the computingdevice 166 to provide the authentication information to access the useraccount 174. Upon receiving the authentication information via thenetwork 176, the processor 190 (FIG. 2A) of the server 228 or anotherprocessor of another server determines whether the authenticationinformation is authentic. Upon determining that the authenticationinformation is authentic or upon receiving the determination from theother processor of the other server, the processor 190 enables access tothe user account 174 to the user 112A. When access to the user account174 is enabled, a representation of the user account 174 is rendered bythe processor 234 on the display device 276 (FIG. 3A) of the monitoringdevice 108A or is rendered by the processor 226 of the computing device166 on the display device 352 (FIG. 5) of the computing device 166.

The method 170 further includes receiving, in an operation 178,monitoring data for the user account 174. The monitoring data includesthe activity detected at the operation 104 (FIGS. 6A & 6B) of themonitoring device 108A (FIG. 3A). The monitoring data includesgeo-location data obtained at the operation 118 (FIG. 6A).

The operation of receiving 178 is performed by the NIC 254 (FIG. 2A) ofthe server 228. The monitoring data is received, via the network 176(FIGS. 2A, 2B, & 3A), from the NIC 356 (FIG. 5) of the computing device166 that has received the monitoring data from the wirelesscommunication device 278 (FIG. 3A) of the monitoring device 108A or froma wired communication device of the monitoring device 108A. In someembodiments, the monitoring data is received from the wirelesscommunication device 278 of the monitoring device 108A and the network176 without use of the computing device 166.

In some embodiments, the NIC 254 applies a communication protocol toreceive the monitoring data. For example, the NIC 254 depacketizes oneor more packets to obtain the monitoring data.

The method 170 includes processing, in an operation 180, the monitoringdata to identify one or more events. The operation 180 of processing issimilar to the operation 124 (FIG. 6A) of analyzing the detectedactivity and the corresponding geo-location data during a period of timeto identify one or more events. For example, the operation 180 is thesame as the operation 124 except that the operation 180 is performed bythe processor 190 (FIG. 2A) of the server 228. The operation 180 isperformed to generate the GUI data 186 (FIG. 2A). The GUI data 186includes event data of one or more events. For example, the GUI data 186includes data that is rendered to display the GUI 370 (FIG. 7A). Asanother example, the GUI data 186 includes data that is rendered todisplay the GUI 394 (FIG. 7E).

The method 170 includes sending, in an operation 182, in response to arequest from a consuming device the GUI data 186 (FIG. 2A). Examples ofthe consuming device include the computing device 166 (FIG. 5) or themonitoring device 108A (FIG. 3A). For example, when the user 112A isprovided access to the user account 174 (FIG. 2A), a request is receivedfrom the NIC 356 (FIG. 5) to send the GUI data 186. Upon receiving therequest, the NIC 254 (FIG. 2A) of the server 228 applies a communicationprotocol for sending the GUI data 186 via the network 176 to the NIC 356of the computing device 166 for display on the display device 352 of thecomputing device 166. As another example, when the user 112A is providedaccess to the user account 174, a request is received from the wirelesscommunication device 278 of the monitoring device 108A or a wiredcommunication device of the monitoring device 108A via the network 176.Upon receiving the request, the NIC 254 (FIG. 2A) of the server 228applies a communication protocol for sending the GUI data 186 via thenetwork 176 to the wireless communication device 278 of the monitoringdevice 108A or to the wired communication device of the monitoringdevice 108A. The GUI data 186 is sent via the computing device 166 orwithout using the computing device 166.

The GUI data 186 includes graphics, e.g., graphical elements thatrepresent the events 146 ₁ and 146 ₂ (FIG. 7A), that represent thebackground 150 (FIG. 7A), that represent the location/activityidentifiers 132A, 132B, 132C, and 132D (FIG. 7A), etc. The GUI data 186further includes text, e.g., text 188A (“e.g., HOME” in FIG. 7A) thatdescribes, e.g., identifies, etc., a location that the user 112A hasreached during a day, text 188B (“e.g., HANS' PARENTS HOUSE” in FIG. 7A)that describes another location that the user 112A has reached duringthe day another time of the day, text 188C (e.g., “1 AM” in FIG. 7A)that represents a time of the day, text 188D (e.g., “2 AM” in FIG. 7A)that represents yet another time of the day, etc.

The graphics and text segments a period of time over which one or moreactivities are performed into events that are graphically distinct fromeach other. For example, as shown in FIG. 7A, the event 126 ₂ thatincludes activity data of an activity of walking is graphicallydistinct, e.g., has a lighter shade, etc., than the event 126 ₄ thatincludes activity data of an activity of golfing. As another example, asshown in FIG. 7A, an event includes activity data representing anactivity is represented by different graphical elements than an eventthat includes activity data representing the same or a differentactivity.

FIG. 6D is a flowchart of an embodiment of a method 200 for segmenting aperiod of time into identification of locations of a user performingactivities. The method 200 is executed by the monitoring device 108B(FIG. 3B).

The method 200 includes determining, in an operation 202, a geo-locationof the monitoring device 108B over a time period. The geo-location ofthe monitoring device 108B is determined by the device locator 306 (FIG.3B). The method 200 further includes determining, in an operation 204, aphysiological parameter of the user 112A over a period of time. Theoperation 204 is performed by the biological sensor 294 (FIG. 3B) of themonitoring device 108B. For example, the biological sensor 294 measuresa change in weight of the user 112A over a period of time for which thegeo-location is determined in the operation 202. As another example, thebiological sensor 294 measures a change in BMI of the user 112A over aperiod of time for which the geo-location is determined in the operation202. A period of time is measured by the time measurement device 395(FIG. 3B).

The method 200 also includes associating, in an operation 206, thegeo-location determined in the operation 202 with the physiologicalparameter determined in the operation 204 to facilitate determination ofa group of activity data and a location of the monitoring device 108B.The processor 302 (FIG. 3B) of the monitoring device 108B performs theoperation 206. For example, the processor 302 establishes a link betweenthe geo-location data and the physiological parameter. The processor 302determines a location of the monitoring device 108B based on thegeo-location data and the geo-location-location database. The processor302 further determines a group of activity data that includes one ormore amounts of a physiological parameter that provide a measure of anactivity performed over a period of time. For example, when the user112A exercises over a period of time, the user 112A may lose weight. Asanother example, when the user 112A is sedentary over a period of time,the user 112A may gain weight. The processor 302 then generates eventdata that includes a relation between the location and the group ofactivity data. For example, the processor 302 determines that one ormore amounts of a physiological parameter occur at a location over aperiod of time and generates a relationship, e.g., correspondence, link,etc., between the amounts, the location, and the time period.

FIG. 6E is a flowchart of an embodiment of a method 210 for segmenting aperiod of time into identification of locations of a user performingactivities. The method 210 is performed by one or more monitoringdevices, e.g., the monitoring device 108A, the monitoring device 108B, acombination thereof, etc.

The method 210 includes an operation 212 of detecting an activity and/ora physiological parameter of the user 112A with one or more monitoringdevices for a period of time. For example, the position sensor 220 ofthe monitoring device 108A (FIG. 3A) detects an activity performed bythe user 112A and the biological sensor 294 of the monitoring device108B (FIG. 3B) detects a physiological parameter of the user 112A.

The method 210 further includes an operation 214 of obtaininggeo-location data for the monitoring devices for the period of time forwhich the operation 212 is performed. For example, geo-location data ofgeo-location of the monitoring device 108A is measured by the devicelocator 222 of the monitoring device 108A (FIG. 3A) and geo-locationdata of geo-location of the monitoring device 108B is measured by thedevice locator 306 of the monitoring device 108B (FIG. 3B). A period oftime is measured by the time measurement device 232 (FIG. 3A) of themonitoring device 108A and by the time measurement device 295 of themonitoring device 108B (FIG. 3B).

The method 210 includes an operation 216 of saving, in an operation 216,the detected physiological parameter and the detected activity in theoperation 212. For example, the operation 216 of saving the detectedactivity is performed by the processor 234 of the monitoring device 108Aand/or by the processor 234 and the memory device 280 of the monitoringdevice 108A. As another example, the operation 216 of saving thedetected physiological parameter is performed by the processor 302 ofthe monitoring device 108B and/or by the memory device 298 (FIG. 3B) ofthe monitoring device 108B.

The method 210 includes an operation 218 of transferring, from time totime, the detected physiological parameter and the detected activitycorresponding to the geo-location data to the computing device 166 (FIG.5) and/or to the server 228. For example, the operation 218 oftransferring is performed by the wireless communication device 278 (FIG.3A) of the monitoring device 108A or by a wired communication device ofthe monitoring device 108A. As another example, the operation 218 oftransferring is performed by the wireless communication device 300 ofthe monitoring device 108B or by a wired communication device of themonitoring device 108B. The detected activity and the detectedphysiological parameter are transferred wirelessly to the wirelesscommunication device 224 (FIG. 5) of the computing device 166. In someembodiments, the detected activity and the detected physiologicalparameter are transferred via a wired link, e.g., a cable, a wire, etc.,to the wired communication device (not shown) of the computing device166. In several embodiments, the detected activity and the detectedphysiological parameter are transferred via a wired link or acombination of a wireless link and a wired link and the network 176 tothe server 228 without use of the computing device 166.

Moreover, in some embodiments, the geo-location data is alsotransferred, from time to time, to the computing device 166 and/or tothe server 228. For example, the wireless communication device 278 (FIG.3A) of the monitoring device 108A transfers geo-location data to thewireless communication device 224 of the computing device 166 or a wiredcommunication device of the monitoring device 108A transfers thegeo-location data to the wired communication device of the computingdevice 166. As another example, the geo-location data is transferredwirelessly by the wireless communication device 300 of the monitoringdevice 108B or by a wired communication device of the monitoring device108B to the computing device 166. In several embodiments, thegeo-location data is transferred via a wired link or a combination of awireless link and a wired link and the network 176 to the server 228without use of the computing device 166.

FIG. 6F is a flowchart of an embodiment of a method 221 for segmenting aperiod of time into identification of locations of a user performingactivities. The method 221 is performed by the monitoring device 108A,the monitoring device 108B, by the computing device 166, or acombination thereof.

The method 221 includes receiving, in an operation 223, detectedactivity and/or physiological parameter of the user 112A. For example,the processor 234 (FIG. 3A) of the monitoring device 108A receivesdetected activity from the position sensor 220 (FIG. 3A). As anotherexample, the processor 302 of the monitoring device 108B receivesdetected physiological parameter from the biological sensor 294 (FIG.3B) of the monitoring device 108B. As yet another example, the processor226 of the computing device 166 (FIG. 5) receives the detected activityfrom the monitoring device 108A and/or receives the physiologicalparameter from the monitoring device 108B.

The method 221 includes an operation 227 of classifying detectedactivity and/or the physiological parameter. For example, the processor234 (FIG. 3A) of the monitoring device 108A classifies the amount ofmovement into walking, running, sedentary, sleeping, moving around, orplaying a sport. As another example, the processor 302 of the monitoringdevice 108B classifies the physiological parameter into a type ofphysiological parameter, e.g., BMI, heart rate, blood pressure, weight,etc. As another example, the processor 226 of the computing device 166classifies the detected activity and/or the physiological parameter.

The method 221 further includes an operation 229 of determining alocation of the user 112A. For example, the processor 234 of themonitoring device 108A determines a location of the user 112A based ongeo-location data and/or based on detected activity and/or based on thegeo-location-location database. The geo-location data is received by theprocessor 234 from the device locator 222 of the monitoring device 108Aand the detected activity is received by the processor 234 from theposition sensor 220 (FIG. 3A) of the monitoring device 108A. Moreover, adetermination of a location based on the geo-location data is made bythe processor 234 based on the geo-location data and/or the activitydata and/or the geo-location-location database.

As another example, the processor 226 of the computing device 166determines a location of the user 112A based on geo-location data and/orbased on detected activity and/or based on a physiological parameter,and/or based on the geo-location-location database. The geo-locationdata is received by the processor 226 from the device locator 222 of themonitoring device 108A or from the device locator 306 of the monitoringdevice 108B and the detected activity is received by the processor 226from the position sensor 220 (FIG. 3A) of the monitoring device 108Aand/or a physiological parameter is received from the biological sensor294 of the monitoring device 108B. Moreover, a determination of alocation based on the geo-location data is made by the processor 234based on the geo-location data and/or the activity data and/or thephysiological parameter and/or the geo-location-location database. Forexample, upon determining that there is a lack of change beyond anamount in a physiological parameter over a period of time, the processor234 determines that the user 112A has not left one or more geo-locationsthat corresponds to his/her home during the period of time.

In some embodiments, the processor 226 classifies an activity based on aphysiological parameter of the user 112A, and/or a movement of the user112A, and/or a location of the user 112A. For example, a heart rate ofthe user 112A is monitored, a movement of an arm of the user 112A isdetermined, and a location of the user 112A is determined to determinethat the user 112A is training with weights in a gym and not swimming inthe gym. As another example, an amount of calories burned by the user112A is measured, a movement of an arm of the user 112A is determined,and a location of the user 112A is determined to indicate that the user112A is swimming in a gym as opposed to running in the gym.

The method 221 further includes an operation 231 of overlaying of theclassified activity performed by the user 112A and/or of the classifiedphysiological parameter of the user 112A and/or of a location arrived atby the user 112A on a map. For example, the processor 234, the processor302, or the processor 226 determines generates event data that includesthe map, the classified activity, and/or the classified physiologicalparameter. In some embodiments, instead of the operation 231, anoperation of overlaying the map is performed on the classified activityand/or the classified physiological parameter and/or the locationarrived at by the user 112A.

In various embodiments, event data is generated based on positions thatare obtained by a position sensor of a monitoring device andgeo-locations obtained by a device locator of the computing device 166.The geo-locations are of the computing device 166 when carried by theuser 112A. The computing device 166 transfers the geo-locations via aNIC and the network 176 to the server 228. Moreover, the monitoringdevice transfers the positions via a communication device and thenetwork 176 to the server 228. The server 228 receives the geo-locationsand the positions and generates the event data. In some embodiments,instead of the server 228, a virtual machine generates the event data.

In some embodiments, a monitoring device receives the geo-location datathat is obtained by a device locator of the computing device 166 andgenerates event data based on positions and the geo-locations. Themonitoring device includes a position sensor that determines thepositions of the monitoring device. The monitoring device receives thegeo-locations via a communication device of the monitoring device and acommunication device of the computing device 166. The geo-locations areof the computing device 166 when carried by the user 112A.

In several embodiments, the computing device 166 receives positions thatare obtained by a position sensor of a monitoring device and generatesevent data based on positions and the geo-locations. The geo-locationsare of the computing device 166 when carried by the user 112A. Themonitoring device includes a position sensor that determines thepositions of the monitoring device.

In various embodiments, a portion of the event data is generated by aprocessor of a monitoring device and the remaining portion is generatedby a processor of the computing device 166. In several embodiments, aportion of event data is generated by a processor of a monitoringdevice, another portion of the event data is generated by a processor ofthe computing device 166, and the remaining portion is generated by aprocessor of the server 228. In various embodiments, a portion of eventdata is generated by a processor of a monitoring device, another portionof the event data is generated by a processor of the computing device166, and the remaining portion is generated by a virtual machine. Insome embodiments, a portion of event data is generated by a processor ofa monitoring device and the remaining portion is generated by a virtualmachine or by the server 228. In various embodiments, a portion of eventdata is generated by a processor of the computing device 166 and theremaining portion is generated by a virtual machine or by the server228.

FIG. 7A is an embodiment of the GUI 370 that displays the events 126 ₁thru 126 ₁₀. In some embodiments, the processor 234 (FIG. 3A)highlights, e.g. bolds, colors, shades, etc., an activity level that ishigher than or lower than the remaining activity levels by a threshold.The highlight distinguishes the activity level from one or more activitylevels of one or more events that occur during a period of time. Forexample, the processor 234 provides a different color to an activitylevel 402 compared to remaining activity levels of the event 126 ₁₀ whenthe processor 234 determines that the activity level 402 is greater thanthe remaining activity levels by a threshold.

The GUI 370 is rendered by the processor 234 of the monitoring device108A to be displayed on the display device 276 (FIG. 3A) of themonitoring device 108A or by the processor 226 (FIG. 5) of the computingdevice 166 to be displayed on the display device 352 (FIG. 5) of thecomputing device 166.

The processor 234 or the processor 226 combines amounts of time of acommon activity over one or more periods of time to indicate a combinedamount of time, e.g., a combined amount of time 138 ₁, a combined amountof time 138 ₂, a combined amount of time 138 ₃, a combined amount oftime 138 ₄, etc., of performance of the common activity and a level,e.g., a level 140 ₁, a level 140 ₂, a level 140 ₃, a level 140 ₄, etc.,of the common activity performed. For example, as shown in FIG. 7A, theuser 112A drove a vehicle for 1 hour and 1 minute on a date 308 of March1, Thursday. As another example, the processor 234 or the processor 226sums periods of time for which the user 112A performed the commonactivity on the date 308. To illustrate, a period of time of occurrenceof the event 126 ₂, a period of time of occurrence of the event 126 ₅, aperiod of time of occurrence of the event 126 ₇, and a period of time ofoccurrence of the event 126 ₉ are summed to determine a total timeperiod of occurrence of a common activity of driving a vehicle.

Examples of a common activity are the same as that of an activity exceptthat the common activity is the same over multiple periods of time. Forexample, a common activity is walking, running, golfing, etc.

In various embodiments, the processor 234 or the processor 226 combinesactivity levels of performance of the common activity over the combinedamount of time to generate a combined activity level for each commonactivity. For example, activity levels of the event 126 ₂, activitylevels of the event 126 ₅, activity levels of the event 126 ₇, andactivity levels of the event 126 ₉ are summed to generate a combinedactivity level of a common activity of driving over the total timeperiod to generate a combined activity level 140 ₄. Similarly, othercombined activity levels 140 ₁, 140 ₂, and 140 ₃ are generated.

Moreover, in some embodiments, the processor 234 or the processor 226combines amounts of time of one or more activities performed at a commonlocation over one or more periods of time to generate a combined amountof time, e.g., a combined amount of time 138 ₅, a combined amount oftime 138 ₆, a combined amount of time 138 ₇, etc., of performance of theone or more activities at the common location. For example, time ofperformance of all activities performed at a home of the user 112 on thedate 308 are combined to generate the combined amount of time 138 ₅. Asanother example, time of performance of all activities performed at anoffice of the user 112 on March 1 are combined to generate the combinedamount of time 138 ₆. A common location is a location at which one ormore activities, e.g., a common activity, etc., are performed over oneor more periods of time.

In several embodiments, the processor 234 or the processor 226 combinesactivity levels of performance of the one or more activities at thecommon location over a combined amount of time to generate a combinedactivity level, e.g., a combined activity level 140 ₅, a combinedactivity level 140 ₆, a combined activity level 140 ₇, etc., of one ormore activities performed at the common location. For example, activitylevels of an activity of walking done by the user 112A at a home of theuser 112A on the date 308 are combined to generate the combined activitylevel 140 ₅. As another example, activity levels of one or moreactivities performed during the events 126 ₁, 126 ₆, and 126 ₁₀ arecombined to generate the combined activity level 140 ₅.

The GUI 370 further includes a reverse button 410 and a forward button412. The user 112A selects the reverse button 410 via the user interface274 (FIG. 3A) or via the input device 340 (FIG. 5) to view a GUI thatdisplays one or more events, one or more combined activity levels,and/or one or more combined amounts of time on a date prior to the date308. Similarly, The user 112A selects the forward button 412 via theuser interface 274 (FIG. 3A) or via the input device 340 (FIG. 5) toview a GUI that displays one or more events, one or more combinedactivity levels, and/or one or more combined amounts of time on a dateafter the date 308.

In various embodiments, the GUI 370 includes a time at which there is achange in an activity level beyond a limit in an amount of time. Forexample, the GUI 370 includes a wake-up time 414 and a bed time 416. Theposition sensor 220 (FIG. 3A) determines an amount of activity and basedon the amount, the processor 234 or the processor 226 determines whetherthe amount of activity has crossed the limit in an amount of time. Upondetermining that the amount of activity has crossed the limit in anamount of time, the processor 234 or the processor 226 indicates, e.g.,highlights, etc., a time at which the level is crossed on the GUI 370.For example, the processor 234 highlights the wake-up time 414 and thebed time 316.

It should be noted that a GUI generated by the processor 234 isdisplayed on the display device 276 (FIG. 3A), a GUI generated by theprocessor 302 is displayed on the display device 304 (FIG. 3B), and aGUI generated by the processor 226 is displayed on the display device352 (FIG. 5).

It should further be noted that in some embodiments, any GUI describedherein as being generated by the processor 234 or by the processor 226for display may instead be generated by the processor 302 of themonitoring device 108B for display on the display device 304.

In some embodiments, event data includes an environmental parameter thatis received from the environmental sensor 272 of the monitoring device108A by the processor 234 (FIG. 3A) or from the environmental sensor 292of the monitoring device 108B by the processor 302 (FIG. 3B) or from theenvironmental sensor 272 via the wireless communication device 278 (FIG.3A) of the monitoring device 108A by the NIC 356 (FIG. 5) of thecomputing device 166 or from the environmental sensor 292 via thewireless communication device 300 (FIG. 3A) of the monitoring device108B by the NIC 356 (FIG. 5) of the computing device 166.

In several embodiments, the processor 226 or the processor 234 does notgenerate event data when an activity of the event data occurs for lessthan a period of time, e.g., two minutes, three minutes, etc.

In a number of embodiments, the processor 226 or the processor 234replaces a current location identifier with a previous and a futurelocation identifier when the user 112A is at the previous, current, andfuture locations within a time limit and when the previous locationidentifier and the future location identifier are the same. The previouslocation is a location at which the user 112A was before arriving at thecurrent location. The current location is a location at which the user112A is before the user 112A arrives at the future location. Forexample, the processor 234 determines based on the correspondencebetween one or more geo-locations, one or more positions of the user112A, and the previous location and based on the correspondence betweenone or more geo-locations, one or more positions of the user 112A, andthe future location that the previous location and the future locationare the same.

In this example, the processor 234 further determines that the currentlocation is different from the previous and future locations and theuser 112A has arrived at the previous, current, and future locationswithin a time limit that is received from the time measurement device232. In this example, the processor 234 determines that the currentlocation is different from the previous locations based on thecorrespondence between one or more geo-locations, one or more positionsof the user 112A, and the previous location and based on thecorrespondence between one or more geo-locations, one or more positionsof the user 112A, and the future location and based on thecorrespondence between one or more geo-locations, one or more positionsof the user 112A, and the current location. In this example, theprocessor 234 determines that the current location is the same as theprevious and future locations upon determining that the previous andfuture locations are the same and that the user 112A arrives at theprevious, current, and future locations within the time limit.

In several embodiments, the processor 226 or the processor 234 replacesa current activity identifier with a previous and a future activityidentifier when the user 112A performs the previous, current, and futureactivities within a time limit and when the previous activity identifierand the future activity identifier are the same. The previous activityis an activity that the user 112A performs before performing the currentactivity and the current activity is an activity that the user 112Aperforms before performing the future activity. For example, theprocessor 234 determines based on positions of the user 112A and/orgeo-location data of the user 112A that the previous activity and thefuture activity are the same and that the current activity is differentfrom the previous and the future activities. In this example, theprocessor 234 further determines that the previous, current, and futureactivities are performed within a time limit that is received from thetime measurement device 232. In this example, the processor 234determines that the current activity is the same as the previous andfuture activities upon determining that the previous and futureactivities are the same and that the user 112A performs the previous,current, and future activities within the time limit In someembodiments, the processor 226 or the processor 234 applies a Markovmodel to determine whether to replace the current location identifierthat is different from the previous and future location identifiers withthe previous or future location identifier. In a number of embodiments,the processor 226 or the processor 234 applies a Markov model todetermine whether to replace the current activity identifier that isdifferent from the previous and future activity identifiers with theprevious or future activity identifier.

In some embodiments, a user resizes and/or repositions an overlay, e.g.,an activity identifier, a location identifier, etc., to improve theprecision of an event. For example, an overlay indicates that the user112A is performing an activity at a first activity level at a time. Theuser 112A changes a position and/or size of the overlay to indicate thatthe user 112A is performing the activity at a second activity level atthe time. The first and second activity levels are displayed within thesame GUI. The user 112A changes a position and/or size of an overlay viaan input device of the computing device 166 or via a user interface of amonitoring device.

FIG. 7B is a diagram of a GUI 420 that is generated by executing themethod 102 (FIG. 6A), 160 (FIG. 6B), 170 (FIG. 6C), 210 (FIG. 6E), or221 (FIG. 6F). A map 422 includes a location, e.g., an aquarium, etc.,visited by the user 112A and further includes a route to the location.The map 422 is displayed within the GUI 420. The map 422 is generatedbased on geo-location data. Moreover, the GUI 420 includes a timeline423 of activities performed by the user 112A on a date 424 of Mar. 1,2012. The date 424 is displayed within the GUI 420 on top of the map422.

The user 112A selects the date 424 among multiple dates displayed on topof the map 422 via the user interface 274 (FIG. 3A) of the monitoringdevice 108A or via the input device 340 (FIG. 5) of the computing device166. When the date 424 is selected, the processor 234 of the monitoringdevice 108A (FIG. 3A) generates the GUI 420 to display the GUI 420 onthe display device 276 (FIG. 3A) or the processor 226 (FIG. 5) of thecomputing device 166 generates the GUI 420 to display the GUI 420 on thedisplay device 352 (FIG. 5) of the computing device 166.

The GUI 420 includes events 424 ₁, 424 ₂, 424 ₃, 424 ₄, 424 ₄, 424 ₅,424 ₆, and 424 ₇. The event 424 ₄ includes activity levels of anactivity performed at the aquarium by the user 112A.

FIG. 7C is a diagram illustrating a method for establishing boundariesbetween two locations over one or more periods of time. A boundary is aboundary of a location. A boundary also indicates a time at which theuser 112A enters or exits a location having the boundary. For example, aboundary A includes outside walls of a home of the user 112A and a timeat which the user 112A enters the home or exits the home. As anotherexample, a boundary B includes outside walls of a building where theuser 112A works and a time at which the user 112A enters the building orleaves the building. As yet another example, a boundary C includesoutside walls of a sandwich shop and a time at which the user 112Aenters the sandwich shop or leaves the sandwich shop. As anotherexample, a boundary D includes a line that limits an area of a golfcourse and a time at which the user 112A enters the golf course orleaves the golf course. As an example, a boundary E includes a body of avehicle and a time at which the user 112A enters the vehicle or leavesthe vehicle.

The processor 234 of the monitoring device 108A (FIG. 3A) or theprocessor 226 (FIG. 5) of the computing device 166 determines boundarieswhere the user 112A arrives at, e.g., enters, etc., and departs from,e.g., exits, etc., a location. For example, the processor 234 receivesfrom the device locator 222 (FIG. 3A) a geo-location 1 of the monitoringdevice 108A. Continuing with the example, the processor 234 determinesthat the geo-location 1 corresponds to a location 1, e.g., a street, avehicle, etc., outside a location 2, e.g., a building, a street, etc.The location 2 corresponds to a geo-location 2. The processor 234determines that the user 112A is at the location 1 at a time tx and atthe location 2 at a time ty. In this example, the processor 226 receivesthe geo-location 1 from the device locator 222 and the geo-location 2from the device locator 222 and the times tx and ty from the timemeasurement device 232 (FIG. 3A). In this example, there is a lack ofgeo-location data of the user 112A between the times tx and ty.

In the example, the processor 234 further determines a speed of anactivity of the user 112A performed at the time tx or at the time ty.The processor 234 determines a speed of the user 112A between the timestx and ty. Further, in this example, the processor 234 calculates speedas a ratio of a distance between the geo-locations 2 and 1 and adifference between the times ty and tx. In this example, based on thespeed, the processor 226 determines an amount of time taken by the user112A to reach an entry of the location 2. A geo-location correspondingto the entry of the location 2 is obtained from the device locator 222by the processor 234 and/or an amount of movement corresponding to theentry of the location 2 is obtained from the position sensor 220 of themonitoring device 108A, and the entry is determined from geo-location,the amount of movement, and/or the geo-location-location database by theprocessor 234. In this example, the processor 234 adds the amount oftime taken to reach the entry from the time tx to determine a time ofentry by the user 112A into the location 2 from the location 1.

In some embodiments, in the preceding example, based on the speed, theprocessor 226 determines an amount of time taken by the user 112A toreach an exit of the location 1. A geo-location corresponding to theexit of the location 1 is obtained from the device locator 222 by theprocessor 234 and/or an amount of movement corresponding to the exit ofthe location 1 is obtained from the position sensor 220 of themonitoring device 108A, and the exit is determined from geo-location,the amount of movement, and/or the geo-location-location database by theprocessor 234. In this example, without limitation to the methods, theprocessor 234 adds the amount of time taken to reach the exit from thetime tx to determine a time of exit by the user 112A from the location1.

It should be noted that the processor 234 of the monitoring device 108Aor the processor 226 of the computing device 166 determines geo-locationdata as located along a straight line between two boundaries. Forexample, geo-location data is located on a straight line 440 between theboundary A and the boundary B, geo-location data is located on astraight line 442 between the boundary B and the boundary C, andgeo-location data is located on a straight line 444 between a point 448and the boundary D.

In some embodiments, geo-location data is determined for minute timeintervals, e.g., times between the times tx and ty, every minute, everyfraction of a minute, etc., is compared to the geo-location data on astraight line between two boundaries or between a boundary and a point.The processor 234 or the processor 226 performs the comparison. Thegeo-location data determined for the minute time intervals may bedecimated by the processor 234 or the processor 226. The processor 234or the processor 226 determines whether a divergence between thegeo-location data obtained at the minute time intervals and geo-locationdata on a straight line between two boundaries exceeds a value. Upondetermining that the divergence exceeds the value, the processor 234 orthe processor 226 determines that there is a boundary at a point of thedivergence.

For example, a divergence between geo-location data on the straight line440 and geo-location data, obtained at minute time intervals, on a curve446 exceeds a value. In this example, the boundary A exists at a pointof the divergence. On the other hand, upon determining that thedivergence does not exceed the value, the processor 234 or the processor226 determines that there is no boundary at the point of lack ofdivergence. For example, a divergence between geo-location data on thestraight line 444 and geo-location data, obtained at minute timeintervals, on a straight line 446 does not exceed the value. In thisexample, there is no boundary formed at the point 448 at which the lines444 and 446 start to intersect.

FIG. 7D is a diagram of a GUI 460 to illustrate a method of allowing auser to choose a location in case of common geo-locations betweenmultiple locations. The GUI 460 is generated by executing the method 221(FIG. 6F). As shown in the GUI 460, the processor 234 or the processor226 determines that a location 462 and a location 464 has one or morecommon geo-locations 466. The locations 462 and 464 may be determined bythe processor 226 or the processor 234 based on thegeo-location-location database. The processor 234 generates a prompt anddisplays the prompt via the display device 276 (FIG. 3A) to the user112A. Similarly, the processor 226 generates the prompt to display viathe display device 352 (FIG. 5). The prompt indicates to the user 112Ato select the location 462 or the location 464 as a locationcorresponding to the geo-locations 466. The user 112 selects via theuser interface 274 (FIG. 3A) or via the input device 340 (FIG. 5) thelocation 462 or the location 464 as corresponding to the geo-locations466. Upon receiving the selection of the location 462 or the location464, the processor 226 or the processor 234 associates the selectedlocation to correspond to the geo-locations 466.

In some embodiments, the user 112A expands a size of the location 462via the user interface 274 (FIG. 3A) to indicate to include one or moregeo-locations within the location 466 to indicate to the processor 226that the one or more geo-locations within the location 466 are withinthe location 462. The processor 226 then associates the one or moregeo-locations with the location 462 instead of with the location 466.

In various embodiments, one or more geo-locations are located outsidethe location 466. The user 112A expands a size of the location 462 viathe user interface 274 (FIG. 3A) to indicate to include the one or moregeo-locations to indicate to the processor 226 that the one or moregeo-locations are within the location 462. The processor 226 thenassociates the one or more geo-locations with the location 462.

FIG. 7E is a diagram of an embodiment of a web page 470 that includesthe GUI 394 that further includes the events 128 ₁, 128 ₂, 128 ₃, 128 ₄,128 ₅, and 128 ₆. The GUI 394 is similar to the GUI 370 (FIG. 7A) exceptthat the GUI 394 is displayed within the web page 470 and the GUI 394includes a time 337 of exit by the user 112A of his/her home. In someembodiments, the GUI 394 includes a time of entry or exit by the user112A of a location.

A web page is displayed when the wireless communication device 278 (FIG.3A) or a wired communication device of the monitoring device 108A sendsa request for the web page to the server 228 via the network 176 withoutusing the computing device 166 (FIG. 3A). In some embodiments, therequest for a web page is sent from the NIC 356 of the computing device166 via the network 176 to the server 228.

Upon receiving the request for a web page, the server 228 sends the webpage via the network 176 to the computing device 166. The NIC 356 of thecomputing device receives a web page and the web page is displayed onthe display device 352 (FIG. 5) of the computing device 166.

Similarly, in some embodiments, upon receiving the request for a webpage, the server 228 sends the web page via the network 176 to themonitoring device 108A. The wireless communication device 278 (FIG. 3A)or a wired communication device of the monitoring device 108A receives aweb page and the web page is displayed on the display device 276 (FIG.3A) of the monitoring device 108A.

FIG. 7F is a diagram of an embodiment of a zoom-in 496 of a portion 502of a GUI 498. The GUI 496 is generated by executing the method 102 (FIG.6A), 160 (FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E). In someembodiments, the zoom-in 496 is displayed on the display device 276(FIG. 3A) of the monitoring device 108A or on the display device 352(FIG. 5) of the computing device 166. The zoom-in 496 is displayed whenthe user 112A selects the portion 502 via the user interface 274 (FIG.3A) or via the input device 340 (FIG. 5).

FIG. 7G is a diagram of an embodiment of a daily journal GUI 510. Thedaily journal GUI 510 is generated when the processor 234 or theprocessor 226 combines one or more GUIs 512, 514, 516, and 518. Each GUI512, 514, 516, and 518 is generated by executing the method 102 (FIG.6A), 160 (FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E). The GUIs 512, 514,516, and 518 have chronologically-ordered dates of one or moreactivities performed by the user 112A at one or more locations over oneor more periods of time. In some embodiments, the GUIs 512, 514, 516,and 518 have consecutive dates, which are dates of activities performedby the user 112A. The daily journal GUI 510 is displayed by theprocessor 234 on the display device 276 (FIG. 3A) of the monitoringdevice 108A or is displayed by the processor 226 on the display device352 (FIG. 5) of the computing device 166.

Each GUI 512, 514, 516, and 518 is displayed in a row. In someembodiments, each GUI 512, 514, 516, and 518 is displayed in a column orparallel to an oblique line.

FIG. 7H is a diagram of an embodiment of a daily journal GUI 520. Thedaily journal GUI 520 is generated when the processor 234 or theprocessor 226 combines one or more GUIs 522, 524, 526, and 528. Each GUI522, 524, 526, and 528 is generated by executing the method 102 (FIG.6A), 160 (FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E). The GUIs 522, 524,526, and 528 have chronologically-ordered dates of one or moreactivities performed by the user 112A at one or more locations over oneor more periods of time. In some embodiments, the GUIs 522, 524, 526,and 528 have consecutive dates, which are dates of activities performedby the user 112A. The daily journal GUI 520 is displayed by theprocessor 234 on the display device 276 (FIG. 3A) of the monitoringdevice 108A or is displayed by the processor 226 on the display device352 (FIG. 5) of the computing device 166.

Each GUI 522, 524, 526, and 528 is displayed in an orderly fashion.

FIG. 7I is a diagram of an embodiment of a GUI 530 that provides anoverview of one or more activities 538 performed by the user 112A at oneor more locations 540 over a period of time. The activities 538 aregraphical elements. Similarly, the locations 540 are graphical elements.The GUI 530 is generated by executing the method 102 (FIG. 6A), 160(FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E). The GUI 530 also includes atime line 542 that shows a relationship of time periods, e.g., a nighttime period, a day time period, etc., with performance of the activities538 and the locations 540. The activities 538, the locations 540, andthe time line 542 are aligned with respect to each other along a column550. The locations 540 include one or more location/activity identifiers544 ₁, 544 ₂, 544 ₃, and 544 ₄.

The activities 538 include a sedentary activity 546 ₁, a sedentaryactivity 546 ₂, a sedentary activity 546 ₃, a sedentary activity 546 ₄,a sedentary activity 546 ₄, a sedentary activity 546 ₅, a sedentaryactivity 546 ₆, a sedentary activity 546 ₇, and a sedentary activity 546₈. The activities 538 further include a lightly active activity 536 ₁, alightly active activity 536 ₂, a lightly active activity 536 ₃, alightly active activity 536 ₄, a lightly active activity 536 ₅, alightly active activity 536 ₆, and a lightly active activity 536 ₇. Theactivities 538 further includes a moderately active activity 534 ₁, amoderately active activity 534 ₂, a moderately active activity 534 ₃,and a highly active activity 532.

It should be noted that an activity level of the sedentary activeactivity is lower than an activity level of the lightly active activity.An activity level of the lightly active activity is lower than anactivity level of the moderately active activity and an activity levelof the moderately active activity is lower than an activity level of thehighly active activity. For example, a number of calories burned duringthe sedentary active activity is lower than a number of calories burnedduring the lightly active activity, a number of calories burned duringthe lightly active activity is lower than a number of calories burnedduring the moderately active activity, and a number of calories burnedduring the moderately active activity is lower than a number of caloriesburned during the highly active activity. As another example, an amountof activity performed at the sedentary active activity is lower than anamount of activity performed at the lightly active activity, an amountof activity performed at the lightly active activity is lower than anamount of activity performed at the moderately active activity, and anamount of activity performed at the moderately active activity is lowerthan an amount of activity performed at the highly active activity.

Each activity is vertically aligned with a location. For example, thesedentary activity 546 ₁ is vertically aligned with the location 544 ₁.As another example, the lightly active activity 536 ₁ is verticallyaligned with the locations 544 ₁ and 544 ₂.

In some embodiments, when an activity is aligned, e.g., vertically,horizontally, etc. with a location, the activity is performed at thelocation. For example, the monitoring device 108A worn by the user 112Acaptures positions used to determine an activity performed within a homeof the user 112A.

Moreover, it should be noted that although four activities are shown inFIG. 7I, in some embodiments, any number of activities may be shown.Furthermore, in some embodiments, the activities 538, the locations 540,and the time line 542 are aligned with respect to each other along a rowinstead of the column 550. For example, each of the activities 538, thelocations 540, and the time line 542 are made vertical instead ofhorizontal to be aligned with respect to each other along a row.

A cursor 552 is displayed on the GUI 530 by the processor 226 or by theprocessor 234. When the user 112A uses the user interface 274 (FIG. 3A)or the input device 340 (FIG. 5) to point the cursor 552 to a portion ofthe activities 538 and selects the portion, a progressively detailed GUI560 is displayed. The GUI 560 is displayed in FIG. 7J.

FIG. 7J is a diagram of an embodiment of the GUI 560. The GUI 560 isgenerated by executing the method 102 (FIG. 6A), 160 (FIG. 6B), 170(FIG. 6C), or 210 (FIG. 6E). The GUI 560 includes a detailed view of theactivities 538 (FIG. 7I) The detailed view is shown as activities 580.For example, the GUI 560 includes a detailed view of each activity levelof the GUI 530 (FIG. 7I). To illustrate, the highly active activity 532(FIG. 7I) is detailed as one or more highly active activity levels 582 ₁and 582 ₂ of the activity. As another illustration, the sedentaryactivities 546 ₁ thru 546 ₈ are detailed as one or more sedentaryactivity levels 562 ₁, 562 ₂, 562 ₃, 562 ₄, 562 ₅, 562 ₆, 562 ₇, and 562₈. As yet another illustration, the lightly active activities 536 ₁ thru536 ₇ are detailed as one or more lightly active activity levels 564 ₁,564 ₂, 564 ₃, 564 ₄, 564 ₅, 564 ₆, 564 ₇, and 564 ₈. As anotherillustration, the moderately active activities 534 ₁ thru 534 ₃ aredetailed as one or more moderately active activity levels 566 ₁, 566 ₂,566 ₃, and 566 ₄. In some embodiments the activities 580 are graphicalelements.

In some embodiments, each location/activity identifier of the GUI 530 isdetailed by the processor 226 or by the processor 234 into a detailedlocation/activity identifier within the GUI 560. For example, a buildingidentifier within the GUI 530 is detailed, within the GUI 560 into oneor more rooms of the building when the user 112A uses the user interface274 (FIG. 3A) or the input device 340 (FIG. 5) to point the cursor 552to a portion of the locations 540 (FIG. 7I) and to select the portion.

In various embodiments, the GUI 560 includes a detailed view, whichincludes one or more activity levels, of an activity of the GUI 530. Theactivity of the GUI 530 is one at which the user 112A points to andselects with the pointer 552. In some embodiments, the GUI 560 includesa detailed location/activity identifier of a location/activityidentifier, on the GUI 530, at which the user 112A points to and selectswith the pointer 552.

FIG. 7K is a diagram of an embodiment of the GUI 574. The GUI 574 is thesame as the GUI 560 (FIG. 7J) except that the GUI 574 shows a moredetailed view of one or more activities performed by the user 112A, of atime period during which the activities are performed, and/or of alocation at which the activities are performed, compared to that shownin the GUI 560. For example, when the user 112A uses the user interface274 (FIG. 3A) or the input device 340 (FIG. 5) to point the cursor 552to a portion, e.g., an activity level 582 ₁ (FIG. 7J), etc., of theactivities 580 (FIG. 7J) and to select the portion, a detailed view ofthe portion is displayed within the GUI 574. To illustrate, the detailedview of the portion includes a graphical element 588 that displays atime at which the activity level 582 ₁ occurs, a location/activityidentifier 590 identifying an activity, e.g., walking, running, etc.,performed at a location by the user 112A. The activity level 582 ₁ andan activity level 582 ₂ are portions of an activity level 582.

The detailed view further includes text 592 that describes the activity,having the activity level 582 ₁, performed by the user 112A, time ofoccurrence of the activity, and activity data, e.g., number of steps,calories burned, etc., of the activity. The detailed view furtherincludes a location/activity identifier 594 that represents a locationclosest to a location of performance of the activity identified by thelocation/activity identifier 590. For example, the location/activityidentifier 594 is a home icon of a home of the user 112A and the home isat a location closest to a location where the user 112A walks a dog. Thedetailed view further includes text 596 describing a location identifiedby the location/activity identifier 594. The graphical element 588, thelocation/activity identifier 590, and the location/activity identifier594 are aligned along a line 598. In some embodiments, the graphicalelement 588, the location/activity identifier 590, and thelocation/activity identifier 594 are not aligned with respect to eachother. In various embodiments, the detailed view excludes the text 592and/or excludes the text 596. In several embodiments, the detailed viewexcludes the location/activity identifier 590 and/or excludes thelocation/activity identifier 596. The GUI 574 is generated by executingthe method 102 (FIG. 6A), 160 (FIG. 6B), 170 (FIG. 6C), or 210 (FIG.6E).

FIG. 7L is a diagram illustrating an embodiment of a method of combiningactivity levels over a period of time. The method of combining activitylevels over a period of time is performed by the processor 226 or by theprocessor 234. In the method of combining activity levels, a GUI 602 isdisplayed by the processor 226 or by the processor 234.

The GUI 602 includes a display 604 ₁ of activity levels of a number ofactivities, e.g., an activity 1, an activity 2, and an activity 3, etc.performed by the user 112A during a day 1. The activities shown in thedisplay 604 ₁ are performed in the order shown. For example, theactivity 1 is performed during the day 1 before the activity 2 isperformed during the day 1 and the activity 2 is performed during theday 1 before the activity 3 is performed during the day 1.

Moreover, the GUI 602 includes a display 604 ₂ of activity levels of anumber of activities, e.g., an activity 2, an activity 1, and anactivity 3, etc. performed by the user 112A during a day 2. Theactivities shown in the display 604 ₂ are performed in the order shown.For example, the activity 2 is performed during the day 2 before theactivity 1 is performed during the day 2 and the activity 1 is performedduring the day 2 before the activity 3 is performed during the day 2.

The user 112A uses the user interface 274 (FIG. 3A) or the input device340 (FIG. 5) to point the cursor 552 to the activity 1 performed duringthe day 1 to select the activity 1 performed during the day 1 and dragthe activity 1 performed during the day 1 to a GUI 606, which is anactivity filter. The user 112A then uses the user interface 274 (FIG.3A) or the input device 340 (FIG. 5) to point the cursor 552 to theactivity 1 performed during the day 2 to select the activity 1 performedduring the day 2 and drag the activity 1 performed during the day 2 tothe GUI 606. In some embodiments, the processor 226 or the processor 234receives a selection from the user 112A via the user interface 274 (FIG.3A) or the input device 340 (FIG. 5) of the activity 1, the activity 2,or the activity 3 over a period of time, e.g., day 1, day 2, etc.,within the GUI 602 and the processor 234 drags the activities performedduring the period of time to present in the GUI 606.

When the user 112A uses the user interface 274 (FIG. 3A) or the inputdevice 340 (FIG. 5) to point the cursor 552 to the activity 1 performedduring the day 1 within the GUI 606 and selects the activity 1 performedduring the day 1 or to point the cursor 552 to the activity 1 performedduring the day 2 and selects the activity 1 performed during the day 2within the GUI 606, a GUI 608 is generated and displayed. The GUI 608includes an aggregate, e.g., total, etc., activity level 609 of theactivity 1 performed during the day 1 and includes an aggregate activitylevel 610 of the activity 1 performed during the day 2. Any aggregationof activity levels is performed by the processor 226 or by the processor234.

In some embodiments, upon receiving the selection of the activity 1, theactivity 2, or the activity 3 over a period of time, e.g., day 1, day 2,etc., within the GUI 602, the processor 226 or the processor 234generates a GUI, e.g., the GUI 608, having aggregate activity levels ofthe activity over the period of time for which the activity is selected.

FIG. 7M is a diagram of an embodiment of a GUI 614 that describes anaggregate level of one or more activities performed by the user 112Aover a period of time. The processor 226 or the processor 234 determinesan aggregate amount of an activity performed by the user 112A over aperiod of time. The processor 234 or the processor 234 generates asimplified description of the aggregate amount of the activity anddisplays the simplified description on a corresponding display device.For example, when the user 112A selects a tab 616 via the user interface274 (FIG. 3A) or the input device 340 (FIG. 5), simplified descriptions620, 622, and 624 are displayed within the GUI 614 for one or moreperiods of time. The simplified description 620 is of activitiesperformed by the user 112A on Thursday, March 1, the simplifieddescription 622 is of activities performed by the user 112A on Friday,March 2, and the simplified description 624 is of activities performedby the user 112A on Saturday, March 3.

Each simplified description of activities performed during a period oftime is displayed besides a corresponding sequence of events occurringduring the period of time. For example, the simplified description 620of activities performed on Thursday, March 1 is displayed besides one ormore events 626 occurring on Thursday, March 1.

FIG. 7N is a diagram of an embodiment of a pie-chart 650 of locations atwhich the user 112A performs one or more activities and of percentagesof activity levels at the locations over a period of time. The period oftime is represented by the pie-chart 650. The pie-chart 650 is generatedby the processor 226 or the processor 234.

The pie-chart 650 is segmented into a location 652, a location 654, alocation 656, an activity 658, an activity 660, an activity 662, and alocation/activity 664. When the user 112A is at the location 652, theuser 112A has an activity level of 666. Similarly, when the user 112A isat the location 654, the user 112A has an activity level of 668. Whenthe user 112A is at the location 656, the user 112A has an activitylevel of 670. Moreover, when the user 112A is performing the activity658, the user 112A has an activity level of 672. When the user 112A isperforming the activity 660, the user 112A has an activity level of 674.Also, when the user 112A is performing the activity 662, the user 112Ahas an activity level of 676. When the user 112A is performing theactivity 664 or is at the location 664, the user 112A has an activitylevel of 678.

In some embodiments, an activity level of an activity performed at alocation by the user 112A is determined by the processor 226 or theprocessor 234 in terms of a percentage of an amount of activity thatwould have been performed at the location. For example, the processor226 or 234 determines that a maximum amount of activity that can beperformed by the user 112A or any other user at the location 652 is n.The processor 226 or 234 receives an amount of activity actuallyperformed by the user 112A as m. The processor 226 or 234 determines apercentage (m/n)×100 as the activity level 666.

In various embodiments, any other type of graph, e.g., a bar graph, aline graph, etc., is generated by the processor 226 or the processor 234instead of a pie chart.

FIG. 7O is a diagram of an embodiment of a GUI 690 that includes anoverlay of a map 692 on one or more locations 696, 698, and 700 that theuser 112A visits during a period of time to perform one or moreactivities 701, 702, 704, and 708 performed by the user 112A during theperiod of time. The GUI 690 is generated by the processor 226 or by theprocessor 234. The GUI 690 is generated by executing the method 221(FIG. 6F).

The GUI 690 includes a map 692 of a path traveled by the user 112Aduring a period of time, text describing the locations 696, 698, and 700and text describing the activities 701, 702, 704, and 708.

In some embodiments, instead of text describing the locations 696, 698,and 700, one or more graphical elements or a combination of thegraphical elements and text describing the locations are used within theGUI 690 to indicate the locations. In various embodiments, instead oftext describing the activities 701, 702, 704, and 708, one or moregraphical elements or a combination of the graphical elements and textdescribing the activities are used within the GUI 690 to indicate theactivities.

In a number of embodiments, the one or more locations 696, 698, and 700are overlaid on the map 692.

FIG. 7P is a diagram of an embodiment of a web page 714 that illustratesthat a map 732 is overlaid on the event region 730 to indicate ageo-location of the user 112A at a time, e.g., an hour, a minute, etc.,within a time period in which the user 112A performs one or moreactivities. The web page 714 includes a GUI 716 that further includesthe map 732 and the event region 730. When the user 112A selects a time,e.g., 11 AM, NOON, 1 PM, etc., on the GUI 370 (FIG. 7A) via the userinterface 274 (FIG. 3A) or the input device 340 (FIG. 5), a map, e.g.,the map 732, etc., is overlaid by the processor 226 or the processor 234on the GUI 370 to indicate a geo-location of the user 112A at the time.For example, the geo-location is indicated by centering the map at thegeo-location of the user 112A at the time.

The GUI 716 is generated by executing the method 102 (FIG. 6A), 160(FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E) in combination with themethod 221 (FIG. 6F).

In some embodiments, the event region 730 is overlaid on the map 732.

FIG. 7Q is a diagram of an embodiment of a GUI 750 that includes a map752 below an event region 754. The GUI 750 is generated by the processor226 or the processor 234. The event region 754 includes one or morelocation/activity identifiers 754 ₁, 754 ₂, 754 ₃, 754 ₄, 754 ₅, and 754₆ of locations visited by the user 112A during a period of time.Moreover, the event region 754 includes graphical elements and/or textthat represent one or more activities 756 ₁, 756 ₂, 756 ₃, 756 ₄, and756 ₅ performed by the user 112A during the period of time.

The GUI 750 further includes links 758 ₁, 758 ₂, 758 ₃, 758 ₄, 758 ₅,758 ₆, 758 ₇, 758 ₈, and 758 ₉ between a set including one or moregeo-locations 760 ₁, one or more geo-locations 760 ₂, one or moregeo-locations 760 ₃, one or more geo-locations 760 ₄, one or moregeo-locations 760 ₅, and one or more geo-locations 760 ₆ on the map 752and a set including one or more of the location/activity identifiers 754₁, 754 ₂, 754 ₃, 754 ₄, 754 ₅, and 754 ₆ and/or one or more of theactivities 756 ₁, 756 ₂, 756 ₃, 756 ₄, and 756 ₅. For example, the link758 ₁ is established between the one or more geo-locations 760 ₁ and thelocation 754 ₁.

The GUI 750 is generated by executing the method 102 (FIG. 6A), 160(FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E) in combination with themethod 221 (FIG. 6F).

In some embodiments, a geo-location is represented as a graphicalelement and/or as text by the processor 226 or by the processor 234.

In some embodiments, the map 752 is placed by the processor 236 or theprocessor 234 at any other place, e.g., above, to the left of, to theright of, etc., with respect to the event region 754.

FIG. 7R is a diagram of an embodiment of a web page 770 that is used toillustrate an overlay of event data on a map 774. A map is accessed bythe processor 234 of the monitoring device 108A via the wirelesscommunication device 278 (FIG. 3A) or a wired communication device ofthe monitoring device 108A and the network 176 (FIG. 3A) from thegeo-location-location database of the server 228 (FIG. 3A) or anotherserver without using the computing device 166 (FIG. 3A). In someembodiments, the map 774 is accessed by the processor 234 of themonitoring device 108A via the wireless communication device 278 (FIG.3A) or a wired communication device of the monitoring device 108A, thecomputing device 166, and the network 176 (FIG. 3A) from thegeo-location-location database of the server 228 (FIG. 3A) or anotherserver. In a number of embodiments, the map 774 is accessed by theprocessor 226 of the computing device 166 via the NIC 356 (FIG. 5) ofthe computing device 166 and via the network 176 (FIG. 3A) from thegeo-location-location database of the server 228 (FIG. 3A) or anotherserver.

The web page 770 includes a GUI 772 that is displayed by the processor226 or the processor 234. The GUI 772 is generated by the processor 226or the processor 234. The GUI 772 is generated by executing the method102 (FIG. 6A), 160 (FIG. 6B), 170 (FIG. 6C), or 210 (FIG. 6E) incombination with the method 221 (FIG. 6F).

The map 774 includes one or more geo-locations, names of landmarksaccessed from the geo-location-location database, names of public placesaccessed from the geo-location-location database, names of streetsaccessed from the geo-location-location database, names of geo-locationsaccessed from the geo-location-location database, or a combinationthereof, etc.

The event data is overlaid on the map 774 by the processor 226 or by theprocessor 234. The event data includes one or more of alocation/activity identifier 776 ₁, e.g., a home identifier, etc., alocation/activity identifier 776 ₂, e.g., an identifier of a bus, etc.,a location/activity identifier 776 ₃, e.g., an identifier of a railwaystation, etc., a location/activity identifier 776 ₄, e.g., a vehicleidentifier, etc., a location/activity identifier 776 ₅, e.g., a worklocation/activity identifier, etc., of locations visited by the user112A during a period of time and an activity identifier 778 ₁ of anactivity, e.g., walking, etc., performed by the user 112A during theperiod of time. The event data further includes a path 780 taken by theuser 112A during the period of time in visiting the locations having thelocation/activity identifiers 776 ₁, 776 ₂, 776 ₃, 776 ₄, and 776 ₅ andin performing an activity, e.g., walking, etc., represented by theactivity identifier 778 ₁.

In some embodiments, the event data includes activity data of any numberof activities performed by the user 112A.

In several embodiments, the map 774 is overlaid on the event data.

In various embodiments, the activity identifier 778 ₁, the path 780,and/or the location/activity identifiers 776 ₁, 776 ₂, 776 ₃, 776 ₄, and776 ₅ are color-coded by the processor 226 or the processor 234. Forexample, the processor 226 or the processor 234 assigns a differentcolor to the identifier 778 ₁ than to one or more of thelocation/activity identifiers 776 ₁, 776 ₂, 776 ₃, 776 ₄, and 776 ₅, andthe path 780. As another example, the processor 226 or the processor 234assigns a different color to the location/activity identifier 776 ₁ thanto one or more of the location/activity identifiers 776 ₂, 776 ₃, 776 ₄,and 776 ₅. As another example, the processor 226 or the processor 234assigns a different color to the path 780 than to one or more of thelocation/activity identifiers 776 ₁, 776 ₂, 776 ₃, 776 ₄, and 776 ₅

In some embodiments, the activity identifier 778 ₁, the path 780, and/orthe location/activity identifiers 776 ₁, 776 ₂, 776 ₃, 776 ₄, and 776 ₅are coded by the processor 226 or the processor 234 by using graphicalproperties. For example, the processor 226 or the processor 234 assignsa different graphical property to the activity identifier 778 ₁ than toone or more of the location/activity identifiers 776 ₁, 776 ₂, 776 ₃,776 ₄, and 776 ₅, and the path 780. As another example, the processor226 or the processor 234 assigns a different graphical property to thelocation/activity identifier 776 ₁ than to one or more of thelocation/activity identifiers 776 ₂, 776 ₃, 776 ₄, and 776 ₅. As anotherexample, the processor 226 or the processor 234 assigns a differentgraphical property to the path 780 than to one or more of thelocation/activity identifiers 776 ₁, 776 ₂, 776 ₃, 776 ₄, and 776 ₅

FIG. 7S is a diagram of an embodiment of the web page 770 that is usedto illustrate a zoom-in 790 of a portion of the map 774 and of eventdata of an event that occurs at the portion. When the user 112A uses theuses the user interface 274 (FIG. 3A) or the input device 340 (FIG. 5)to point the cursor 552 to the activity identifier 778 ₁, the processor226 or the processor 234 generates the zoom-in 790 to display thezoom-in 790. In some embodiments, a zoom-in is an example of a GUI.

The zoom-in 790 includes a detailed display 792 associated with theactivity identifier 778 ₁ of an activity performed by the user 112A atone or more geo-locations close to, e.g., within a vicinity of, within aradius of, etc., a location having the location/activity identifier 776₅. The detailed display 792 includes a distance traveled by the user112A close to a location having the location/activity identifier 776 ₅,a number of steps taken by the user 112A close to the location, and atextual description of an activity that is identified by the activityidentifier 778 ₁ and that is close to, e.g., with a radius of, etc., thelocation.

In some embodiments, the zoom-in 790 includes any other activity data,e.g., a number of calories burned by the user 112A close to a locationhaving the location/activity identifier 776 ₅, an amount of golf swingstaken by the user 112A close to the location, etc.

FIG. 7T is a diagram of an embodiment of a web page 751 that includes aGUI 759. The GUI 759 includes an overlay of a map 753 on a user's path755. The user's path 755 is a path traveled by the user 112A during aperiod of time. The user's path 755 is coded to distinguish variouslocations and/or activities along the user's path 755. For example, abus station is provided a different color by the processor 234 or by theprocessor 226 than that provided to a railway station. As anotherexample, a walking activity of the user 112A along the user's path 755is provided a different shade, text, and/or color by the processor 234or by the processor 226 than that provided to a running activity of theuser 112A along the user's path 755. The GUI 759 is generated byexecuting the method 102 (FIG. 6A), 160 (FIG. 6B), 170 (FIG. 6C), or 210(FIG. 6E) in combination with the method 221 (FIG. 6F).

In some embodiments, the user's path 755 is overlaid on the map 753.

FIG. 7U is a diagram of an embodiment of a zoom-in 757 that includes azoom-in of a portion of the user's path 755. The zoom-in 757 isgenerated when the user 112A points the cursor 552 (FIG. 7I) on aportion of the user's path 755 and selects the portion. The zoom-in 757is of the portion of the user's path 755. The zoom-in 757 includesactivity data, e.g., number of steps walked by the user 112A within theportion, a distance covered by the user 112A within the portion, and atype of activity, e.g., walking, running, etc., performed by the user112A within the portion.

FIG. 7V is a diagram of an embodiment of the GUI 759 except that the GUI759 indicates that a portion of the user's path 758 at which the user112A takes bus to a train is coded differently than a portion of theuser's path 758 at which the user 112A is traveling to work on a trainand differently than a portion of the user's path 758 where the user112A is walking around near his/her office.

FIG. 8 is a diagram of an embodiment of one or more location/activityidentifiers 802 ₁, 802 ₂, and 802 ₃, and one or more activityidentifiers 804 ₁, 804 ₂, and 804 ₃. Each identifier 802 ₁, 802 ₂, 802₃, 804 ₁, 804 ₂, and 804 ₃ includes a pointer. For example, theidentifier 802 ₁ includes a pointer 806. In some embodiments, eachidentifier excludes a pointer.

FIG. 9 is a flowchart of an embodiment of a method 851 for facilitatinggeneration of a calendar of activities performed by the user 112A and oflocations at which the activities are performed. The method 851 isexecuted by the server 228 (FIG. 2B).

The method 851 includes receiving, in an operation 853, geo-locationdata that is collected over a period of time. For example, thegeo-location data is received by the NIC of the server 228 via thenetwork 176 from a communication device of a monitoring device. As yetanother example, the geo-location data is received by the NIC of theserver 228 (FIG. 2A) via the network 176 from the NIC of the computingdevice 166 (FIG. 5). In this example, the geo-location data is sent bythe NIC of the computing device 166 to the server 228 after the wirelesscommunication device of the computing device 166 receives thegeo-location data from the wireless communication device of a monitoringdevice.

The operation 853 of receiving is performed by the NIC of the server228.

The geo-location data is collected, e.g., obtained, etc., by the devicelocator of a monitoring device or of a computing device.

The geo-location data is associated with a monitoring device or with thecomputing device 166 from which the geo-location data is received. Forexample, the geo-location data is obtained by the device locator 222 ofthe monitoring device 108A to be sent to the server 228. As anotherexample, the geo-location data is obtained by the device locator 306 ofthe monitoring device 108B to be sent to the server 228. As yet anotherexample, the geo-location data is obtained by the device locator 344 ofthe computing device 166 (FIG. 5) to be sent to the server 228.

The method 851 includes receiving, in an operation 855, motion trackingdata, e.g., the positions A, B, C, D, (FIGS. 1B, 1C), etc. of amonitoring device. For example, x, y, and z locations of the monitoringdevice 108A with reference to the xyz co-ordinate system are received.The operation 855 of receiving is performed by the NIC of the server228.

The motion tracking data is collected over the period of time. Forexample, the motion tracking data is collected by the position sensor220 of the monitoring device 108A (FIG. 3A) for 10 minutes, by aposition sensor of the monitoring device 108B for 20 minutes, or by aposition sensor of the computing device 166 (FIG. 5) for 2 hours.

The method 851 further includes identifying, e.g., characterizing, etc.,in an operation 857, one or more activities for the period of time. Theoperation 857 is performed by the processor 190 of the server 228. Theactivities are identified based on inference rules that identify certainactivities to have occurred when at least part of the motion trackingdata is correlated to the received geo-location. For example, when theuser 112A has a running speed of zero at a time the user 112A is movinghis arm from an underarm position to an overarm position and is locatedat a golf course, the user 112A is playing golf.

The inference rules are used by the processor 190 to determine whetherthe received geo-location data identifies a location that isinconsistent with an activity identified using the received motiontracking data. For example, when the user 112A has a running speed ofabout zero at a time the user 112A is moving his arm from an underarmposition to an overarm position and the user 112A is located at abaseball field, the user 112A is playing baseball and not golf. It isdetermined that the user 112A is playing golf based on the location ofthe user 112A. In this example, the movement from the underarm positionto the overarm position is used to indicate that the user 112A isplaying golf or baseball.

In one embodiment, the inference rules are stored in a rules database962 (FIG. 2A) of the memory device 256 of the server 228 for access andexecution by the processor of the server 228.

In some embodiments, the inference rules are executed by the processor190 to compare stored motions, e.g., patterns of movement of amonitoring device, motions of the monitoring device, repeat motions ofthe monitoring device, motions of the monitoring device at somegeo-locations, or a combination thereof, etc. The stored motions arecompared with the motion tracking data and the geo-location datacollected over the period of time. For example, when the geo-locationdata collected over the period of time indicates that the user 112A istraveling at a speed between ‘a’ miles per hour and ‘b’ miles per hour,it is determined by the processor 190 that the user 112A is walking. Asanother example, when the motion tracking data and the geo-location datacollected over the period of time indicates that the user 112A istraveling at a speed of zero miles per hour and performing a motionbetween an underarm motion and an overarm motion, it is determined thatthe user 112A is playing golf or baseball. As another example, when themotion tracking data and the geo-location data collected over the periodof time indicates that the user 112A is traveling at a speed of zeromiles per hour and performing a motion between an underarm motion and anoverarm motion and is located at a golf course, it is determined thatthe user 112A is playing golf.

It should be noted that in various embodiments, the geo-location data isused to determine a position of the user 112A.

In various embodiments, position and spatial position are usedinterchangeably herein. These positions or spatial positions can be oneor more X, Y, Z coordinate points or a point, and a number of pointsover time can define some movement by the user wearing a trackingdevice.

In several embodiments, the stored motions are assigned tags by theprocessor 190 and the tags are used to identify and access the storedmotions from the rules database 962.

In a number of embodiments, at least part of the motion tracking data iscorrelated to the received geo-location data when the geo-location datais collected at a time the user 112A is performing a motion. The motionof the user 112A is used to generate the motion tracking data. Forexample, when the user 112A performs a motion between the positions Aand B (FIG. 1B), the position sensor of the monitoring device 108Agenerates the motion tracking data.

The method 851 includes performing an operation 859 of defining a metricfor one or more of the identified activities. The operation 859 isperformed by the processor of the server 228. The metric is associatedwith a calendar date. For example, as shown in FIG. 13, the severprocessor determines that the user 112A has walked 52 steps per minuteat a home of the user 112A on March, Saturday. As another example, thesever processor determines that the user 112A woke up at 10 AM on acalendar date of Saturday, March 3. As yet another example, the severprocessor determines that the user 112A is walking in a park for 50minutes. As another example, the processor 190 determines that the user112A has swung for 20 times while golfing at a golf course.

Examples of metrics determined in the operation 859 include a metric950, a metric 952, a metric 954, a metric 962, a metric 970, a metric972, a metric 974, a metric 976, a metric 978, and a metric 966, ametric 956, a metric 958, a metric 960, a metric 964, a metric 980, ametric 982, a metric 984, a metric 986, a metric 988, and a metric 968,which are shown in FIG. 13. Examples of a calendar date include acalendar date 990 and a calendar date 992, which are shown in FIG. 13.

Other examples of a metric include a number of steps taken by the user112A during the period of time, a number of stairs climbed by the user112A during the period of time, a number of stairs descended by the user112A during the time period, an amount of calories burned by the user112A during the time period, or a wake-up time of the user, or a bedtime of the user, or an amount of time of performing an activities, alocation identifier, an activity identifier, or an amount of time ofperforming an activity at a location, or a combination thereof.

The server processor adds a metric determined for the user 112A overmultiple periods of time to define a metric in the operation 859. Forexample, when the user 112A walks a first number of steps in a firstperiod of time and a second number of steps in a second period of time,it is determined that the user 112A walks for a sum of the first andsecond numbers of steps over a sum of the first and second periods oftime. The first and second periods of time occur on one calendar date.In this example, the number of steps are provided to the sever processorby a pedometer.

The method 851 includes an operation 861 of sending the metric to acalendar application with integration instructions. For example, themetric and the integration instructions are sent via the network 176 tothe wireless communication device or a wired communication device of amonitoring device. As yet another example, the metric and theintegration instructions are sent via the network 176 to the NIC of thecomputing device 166. In this example, a communication device, e.g.,wired communication device, wireless communication device, etc., of thecomputing device 166 then sends the metric and the integrationinstructions to a corresponding communication device, e.g., wiredcommunication device, wireless communication device, etc., of amonitoring device.

The calendar application includes an application executing on a virtualmachine, or an application executing on the server 228, or anapplication executing on the computing device 166, or an applicationexecuting on a monitoring device. The calendar application is executedby a processor. For example, the calendar application is executed by theprocessor 234 (FIG. 3A), the processor 302 (FIG. 3B), the processor 226(FIG. 5), or the processor 190 (FIG. 2A). The calendar application isexecuted by a processor to generate a calendar of dates, which mayinclude a day of a week. Examples of a calendar include a calendar 1002(FIG. 14), a calendar 1004 (FIG. 15), a calendar 1038 (FIG. 17), and acalendar 1040 (FIG. 18), each of which is a GUI. In a number ofembodiments, the calendar application is executed by a processor togenerate a calendar of weeks, months, years, etc.

The integration instructions define a calendar date to which the metricdefined in the operation 859 is added. For example, the integrationinstructions provide that the 6000 steps be added to a calendar date ofSaturday, March 3. As another example, the integration instructionsprovide that a bed time of 11:35 PM, which is a time at which the user112A went to bed, be added to a calendar date of Saturday, March 4.

The integration instructions further include format data for presentingthe metric on a calendar that is rendered by the calendar application.The format data includes a size of the metric, or a shape of the metric,or a color of the metric, or a shade of the metric, or a texture of themetric, or a graphical property of the metric, or a graphical element torepresent the metric, or a combination thereof. In some embodiments, theintegration instructions include a location of a metric on the calendar.

FIG. 10 is a flowchart of an embodiment of a method 863 for generating acalendar of activities performed by the user 112A and of locations atwhich the activities are performed. The method 863 is executed by amonitoring device or the computing device 166.

The method 863 includes an operation 865 of obtaining geo-location dataover a period of time. The operation 865 is performed by the devicelocator of a monitoring device or by the device locator of the computingdevice 166 (FIG. 5). The operation 865 is the same as the operation 118(FIG. 6A).

The method 863 includes obtaining, in an operation 867, motion trackingdata over the period of time. The operation 867 is performed by theposition sensor of a monitoring device or by a position sensor of thecomputing device 166. The operation 867 is the same as the operation 104of FIG. 6A.

The method 863 includes the operations 857 and 859.

The method 863 includes an operation 869 of executing the calendarapplication and the integration instructions. The operation 869 isperformed by the processor of the monitoring device or the processor ofthe computing device 166.

FIG. 11A is a flowchart of an embodiment of a method 850 for generatinga calendar of activities performed by the user 112A and of locationsvisited by the user 112A in performing the activities. The method 850 isexecuted by a monitoring device or the computing device 166.

The method 850 includes an operation 852 of obtaining one or moregeo-locations of a monitoring device. The operation 852 is performed bythe device locator of a monitoring device or by the device locator ofthe computing device 166 (FIG. 5). In the operation 852, a longitude anda latitude of a monitoring device is measured. In some embodiments, inthe operation 852, an altitude of a monitoring device is measured. Invarious embodiments, a longitude, a latitude, and an altitude of amonitoring device are measured.

The method 850 further includes an operation 854 of obtaining, e.g.,measuring, etc., one or more spatial positions of a monitoring device.In several embodiments, the spatial positions of the computing device166 are measured. The operation 854 is performed by the position sensorof a monitoring device, or by a position sensor of the computing device166. In the operation 867, spatial positions of a monitoring device withreference to the xyz co-ordinate system are measured.

The method 850 includes an operation 856 of determining one or moretimes, e.g., the times t_(A), t_(B), t_(c), t_(D), (FIGS. 1B, 1C, 1D,1E), etc., corresponding to the spatial positions, the geo-locations, ora combination thereof. The operation 856 is performed by the timemeasurement device of a monitoring device, or a time measurement device(not shown) of the computing device 166 (FIG. 5). The time measurementdevice of the computing device 166 is coupled to the bus 360 (FIG. 5).

In the operation 856, a time at which a monitoring device is at aposition is measured. Moreover, in some embodiments, in the operation856, a time at which a monitoring device is at a geo-location ismeasured. In various embodiments, in the operation 856, a time at whicha monitoring device is at a position and is at a geo-location ismeasured.

The method 850 further includes determining, in an operation 858,activity data based on the times and the geo-locations, or the spatialpositions, or a combination of the geo-locations and the spatialpositions. For example, in the operation 858, an activity performed bythe user 112A is determined based on the times and the geo-locations. Toillustrate, when the user 112A travels from a first geo-location to asecond geo-location in an amount of time ranging between t1 and t2, theuser 112A is walking. As another example, when the user 112A travelsfrom the first geo-location to the second geo-location in an amount oftime between t3 and t4, the user 112A is running As yet another example,when the user 112A travels from the first geo-location to the secondgeo-location in an amount of time between t5 and t6, the user 112A is ina vehicle.

As another example, in the operation 858, an activity performed by theuser 112A is determined based on the times and the spatial positions.For example, when all positions of a hand motion performed by the user112A in a period of time lie within a standard deviation of a planeparallel to the x-axis and is within a range of positions along a z-axisof the xyz co-ordinate system, and the positions are repeatedperiodically, the user 112A is playing a sport. As another example, whenall positions of a hand motion over a time period performed by the user112A are between an underarm and an overarm, the user 112A is playingsoftball or baseball or golf. As another example, when all positions ofa hand of the user 112A are at the same xyz co-ordinate over a period oftime, the user 112A is sleeping or resting.

As yet another example, in the operation 858, an activity performed bythe user 112A is determined based on the times, the spatial positions,and the geo-locations. For example, when all positions of a hand motionperformed by the user 112A are between an underarm and an overarm andall geo-locations at which the positions occur indicate a softballfield, the user 112A is playing softball. As another example, when allpositions of a hand motion performed by the user 112A are between anunderarm and an overarm and all geo-locations at which the positionsoccur indicate a golf course, the user 112A is playing golf.

The operation 858 is performed by the processor of a monitoring deviceor by the processor of the computing device 166.

The activity data determined in the operation 858 includes one or moreactivity levels, e.g., the activity levels 146 ₁ and 146 ₂ (FIG. 7A),etc., and one or more classes of activities, e.g., walking, running,sports, sleeping, sedentary, active, passive, jogging, strolling,standing, sitting, etc., detected by a monitoring device. For example,the position sensor of a monitoring device measures an amount ofcalories burned by the user 112A, or a number of steps walked or ran bythe user 112A, or a number of stairs climbed by the user 112A, or anumber of stairs descended by the user 112A, or a combination thereof,etc.

The method 850 includes an operation 860 of determining one or morelocations of the monitoring device 108A based on the times and based onthe geo-locations, the spatial positions, or a combination of thespatial positions and the geo-locations. For example, when all positionsof a hand motion performed by the user 112A between times t1 and t2 arebetween an underarm and an overarm and all geo-locations at which thepositions indicate that the user 112A is standing and at a golf coursewhile performing the hand motion, the user 112A is at the golf coursebetween the times t1 and t2. As another example, when all geo-locationsof the user 112A between times t1 and t2 correspond to a golf course asdetermined from the geo-location-location database, the user 112A is atthe golf course between times t1 and t2.

In some embodiments, the one or more locations determined in theoperation 860 are of the monitoring device 108B. In various embodiments,the one or more locations determined in the operation 860 are of thecomputing device 166.

The operation 860 is performed by the processor of a monitoring deviceor by the processor of the computing device 166.

The method 850 includes an operation 862 of determining the metric and adescription summarizing the metric. The metric is associated with theactivities performed at the locations based on the activity data and thetimes that are determined in the operation 856. For example, it isdetermined that the user 112A has taken 52 steps per minute while athome on March 3, Saturday. As another example, it is determined that theuser 112A is at his home for 0.11 hours on March 3, Saturday. As yetanother example, it is determined that the user 112A went to bed at11:26 PM on March 3, Saturday. As yet another example, it is determinedthat the user was sedentary for 1:05 hours on March 3, Saturday andbased on this determination, it is further determined that the user 112Asat around on March 3, Saturday. As another example, it is determinedthat the user 112A was in a vehicle for 201 minutes on March 3, Saturdayand based on this determination, it is also determined that the user112A drove a lot on March 3, Saturday. As yet another example, it isdetermined that the user 112A woke up at 10:00 AM on March 3, Saturdayand this determination is compared with a threshold time, e.g., 7 AM, 8AM, etc., to determine that the user 112A woke up late.

Examples of a description summarizing a metric include a description 994₁, a description 994 ₂, a description 994 ₃, a description 996 ₁, adescription 996 ₂, a description 996 ₃, a description 1004, adescription 1006, a description 1008, a description 1010 ₁, and adescription 1010 ₂. The descriptions 994 ₁, 994 ₂, 994 ₃, 996 ₁, 996 ₂,and 996 ₃ are shown below in FIG. 13. The descriptions 1004, 1006, 1008,1010 ₁, and 1010 ₂ are shown below in FIG. 14.

A summary of a metric is generated based on activity levels of one ormore activities performed for one or more time periods. For example, itis determined that the metric determined in the operation 862 is lessthan a boundary, is equal to the boundary, or is greater than theboundary. In this example, when the metric is less than the boundary, adescription, e.g. “I did not drive a lot”, “I woke up late”, “I went tobed late”, “I sat around”, etc., is generated based on an activityperformed by the user 112A. To illustrate, when the user 112A has walked10,000 steps in a day, a description, “I did not walk a lot” isgenerated for the day. As another illustration, when the user 112A isdriving less than 10 miles in a day, a description, “I did not drive alot” is generated for the day.

Moreover, in this example, when the metric is equal to the boundary, adescription, e.g. “I drove”, “I woke up”, “I went to bed”, “I went tobed on time”, etc., is generated based on an activity performed by theuser 112A. To illustrate, when the user 112A has walked 12,000 steps ina day, a description, “I walked” is generated for the day. As anotherillustration, when the user 112A is has driven 20 miles in a day, adescription, “I drove” is generated for the day.

In some embodiments, the boundary is a range between two numbers. Forexample, instead of a boundary of 12,000 steps a day, the boundary isbetween 11,000 and 13,000 steps a day. As another example, instead of aboundary of 15 miles a day, the boundary is between 11 and 19 miles aday.

Furthermore, in this example, when the metric is greater than theboundary, a description, e.g. “I drove a lot”, “I woke up early”, “Iwent to bed early”, etc., is generated based on an activity performed bythe user 112A. To illustrate, when the user 112A has walked 25,000 stepsa day, a description, “I walked a lot” is generated for the day. Asanother illustration, when the user 112A has driven 40 miles in a day, adescription, “I drove a lot” is generated for the day.

The operation 862 is performed by the processor of a monitoring deviceor by the processor of the computing device 166.

The method 850 includes an operation 891 of displaying a calendar on adisplay screen associated with a monitoring device or with the computingdevice 166. For example, the calendar 1004 (FIG. 15) is displayed on adisplay screen of the display device of the monitoring device 108A (FIG.3A). As another example, the calendar 1002 is displayed on a displayscreen of the display device of the monitoring device 108B (FIG. 3B). Asanother example, the calendar 1002 is displayed on a display screen ofthe display device of the computing device 166. The operation 891 isperformed by the display device 276, the display device 304, or by thedisplay device 352 of the computing device 166. In some embodiments, theoperation 863 is performed by the processor of a monitoring device 108Bor by the processor of the computing device 166.

The calendar has one or more calendar dates, e.g., the calendar date 990(FIG. 13), the calendar date 992 (FIG. 13), etc., that are populatedwith the metric and the description summarizing the metric. Theoperation of populating a calendar is performed by the processor of amonitoring device or by the processor of the computing device 166. Insome embodiments, a calendar has one or more calendar dates that arepopulated with the metric or a description summarizing the metric.

The method 850 further includes an operation 864 of determining astatistical metric of the activities performed at the locations over atime horizon. For example, an average number of steps taken by the user112A at a home of the user over a course of a week is calculated. Asanother example, an average wake-up time over a course of a month iscalculated. As another example, an average bed time and an averagewake-up time during a week are calculated. As another example, anaverage amount of time spent in a vehicle during a month is calculated.As an example, an average amount of time spent at a location each dayduring a course of a week or a month is calculated. As an example, anaverage amount of time spent performing an activity each day during acourse of a week or a month is calculated.

As yet another example, an average amount of time spent by the user 112Ain a vehicle over a course of a year is calculated. Other examples of astatistical metric include a median of metrics of multiple activitiesperformed at a location over the time horizon, a standard deviation ofmetrics of multiple activities performed at a location over the timehorizon, a moving average of metrics of multiple activities performed ata location over the time horizon, or a combination thereof, etc. Yetother examples of a statistical metric include a median of metrics of anactivity determined at multiple locations over the time horizon, astandard deviation of metrics of an activity determined at multiplelocations over the time horizon, a moving average of metrics of anactivity determined at multiple locations over the time horizon, or acombination thereof, etc.

The operation 864 is performed by the processor of a monitoring deviceor by the processor of the computing device 166.

Examples of a time horizon include a number of days of a week, a numberof weeks, a number of months in a year, a number of years, etc.

The method 850 includes an operation 866 of generating a descriptionsummarizing the statistical metric over the time horizon. For example,it is determined that the statistical metric determined in the operation864 is less than a limit, is equal to the limit, or is greater than thelimit In this example, when the statistical metric is less than thelimit, a description, e.g. “I did not drive a lot”, “I woke up late”, “Iwent to bed late”, “I sat around”, etc., is generated based on anactivity performed by the user 112A. To illustrate, when the user 112Ais walking for an average of 10,000 steps a day in a week, adescription, “I did not walk a lot” is generated for the week. Asanother illustration, when the user 112A is driving less than an averageof 10 miles a day for a month, a description, “I did not drive a lot” isgenerated for the month.

Moreover, in this example, when the statistical metric is equal to thelimit, a description, e.g. “I drove”, “I woke up”, “I went to bed”, “Iwent to bed on time”, etc., is generated based on an activity performedby the user 112A. To illustrate, when the user 112A is walking for anaverage of 12,000 steps a day in a week, a description, “I walked” isgenerated for the week. As another illustration, when the user 112A isdriving an average of 20 miles a day for a month, a description, “Idrove” is generated for the month.

In some embodiments, the limit is a range between two numbers. Forexample, instead of a limit of 12,000 steps a day, the limit is between11,000 and 13,000 steps a day. As another example, instead of a limit of15 miles a day, the limit is between 11 and 19 miles a day.

Furthermore, in this example, when the statistical metric is greaterthan the limit, a description, e.g. “I drove a lot”, “I woke up early”,“I went to bed early”, etc., is generated based on an activity performedby the user 112A. To illustrate, when the user 112A is walking for anaverage of 25,000 steps a day in a week, a description, “I walked a lot”is generated for the week. As another illustration, when the user 112Ais driving an average of 40 miles a day for a month, a description, “Idrove a lot” is generated for the month.

Examples of a description summarizing the statistical metric areprovided as a description 1018 (FIG. 16) and a description 1020 (FIG.16).

The operation 866 is performed by the processor of a monitoring deviceor by the processor of the computing device 166.

The method 850 includes an operation 868 of displaying a statisticalcalendar on the screen associated with a monitoring device or with thecomputing device 166. For example, a statistical calendar 1017 (FIG. 16)is displayed on a display screen of the display device of the monitoringdevice 108A (FIG. 3A). The statistical calendar includes one or moretime horizons that are populated with the statistical metric determinedin the operation 864 and with the description generated in the operation866.

The operation 868 is performed by the display device of a monitoringdevice or by the display device 352 of the computing device 166. In someembodiments, the operation 868 is performed by the processor of amonitoring device 108B or by the processor of the computing device 166.

The statistical calendar has one or more time horizons, e.g., a calendarweek 1014 (FIG. 16), a calendar week 1016 (FIG. 16), etc., that arepopulated with the statistical metric and the description summarizingthe statistical metric. Each calendar week 1014 and 1016 is a GUI. Theoperation of populating a statistical calendar is performed by theprocessor of a monitoring device or by the processor of the computingdevice 166. In some embodiments, a statistical calendar has one or moretime horizons that are populated with the statistical metric or adescription summarizing the statistical metric.

FIG. 12A is a flowchart of an embodiment of a method 920 facilitatingdisplay of a calendar of activities performed by the user 112A and oflocations visited by the user 112A in performing the activities. Themethod 920 is executed by the server 228.

The method 920 includes an operation of receiving 922 one or moregeo-locations of a monitoring device. The operation 922 is the same asthe operation 853 (FIG. 9) except that times at which the geo-locationdata is collected is received in an operation 926.

The method 920 further includes an operation 924 of receiving one ormore spatial positions of a monitoring device. The operation 924 is thesame as the operation 855 except that times at which motion trackingdata is collected is received in the operation 926.

The method 920 includes an operation 926 of receiving one or more timescorresponding to the spatial positions, the geo-locations, or acombination thereof. For example, times at which geo-locations aremeasured are received by the NIC of the server 228 via the network 176from a communication device of a monitoring device. As yet anotherexample, times at which spatial positions are measured are received bythe NIC of the server 228 (FIG. 2A) via the network 176 from the NIC ofthe computing device 166 (FIG. 5). In this example, the geo-locationdata and the spatial positions are sent by the NIC of the computingdevice 166 to the server 228 after a communication device of thecomputing device 166 receives the geo-location data and the spatialpositions from a communication device of a monitoring device.

The operation 926 of receiving is performed by the NIC of the server228.

The method 920 includes performing the operations 860 and 862.

The method 920 includes performing an operation 928 of sending,periodically or aperiodically, calendar data to display a calendar. Forexample, the calendar data is sent via the network 176 to the wirelesscommunication device or a wired communication device of a monitoringdevice. As yet another example, the calendar data is sent via thenetwork 176 to the NIC of the computing device 166. In this example, acommunication device of the computing device 166 then sends the calendardata to a communication device of a monitoring device.

FIG. 12B is a continuation of the flowchart of FIG. 12A. The method 920includes performing the operations 864 and 866.

The method 920 includes performing an operation 870 of sending thestatistical calendar data. For example, the statistical calendar data issent via the network 176 to the wireless communication device or a wiredcommunication device of a monitoring device. As yet another example, thestatistical calendar data is sent via the network 176 to the NIC of thecomputing device 166. In this example, a communication device of thecomputing device 166 then sends the statistical calendar data to acommunication device of a monitoring device.

In some embodiments, calendar data is sent for display when a selectionis received from the user 112A indicating that the calendar having thecalendar data is to be displayed on the display device of a monitoringdevice or on the display device of the computing device 166. The user112A selects the calendar for display by selecting the user interface ofa monitoring device or by selecting the input device of the computingdevice 166. The selection indicating that the calendar is to bedisplayed is received from the wireless communication device or a wiredcommunication device of a monitoring device, or from the NIC of thecomputing device 166. The selection is received by the NIC of the server228.

Similarly, in various embodiments, statistical calendar data is sent fordisplay when a selection is received from the user 112A indicating thatthe statistical calendar having the statistical calendar data is to bedisplayed on the display device of a monitoring device or on the displaydevice of the computing device 166.

FIG. 13 is a diagram of an embodiment of a calendar GUI 1070 and anothercalendar GUI 1072. The calendar GUI 1070 includes the calendar date 990,the descriptions 994 ₁, 994 ₂, and 994 ₃, and the metrics 950, 952, 954,962, 970, 972, 974, 976, 978, and 966.

Each metric of the calendar GUI 1070 is an amount of activity, e.g., anactivity level, etc., performed by the user 112A on March 3, Saturday.For example, the metric 950 is a number of steps taken by the user 112Aon March 3, Saturday. As another example, the metric 52 steps per minuteis an amount of steps per minute taken by the user 112A at a home of theuser 112A on March 3.

Similarly, each metric of the calendar GUI 1072 is an amount of activityperformed by the user 112A on March 4. The calendar GUI 1072 includesthe calendar date 992, the descriptions 996 ₁, 996 ₂, and 996 ₃, and themetrics 956, 958, 960, 964, 980, 982, 984, 986, 988, and 968.

In some embodiments, each of calendar GUI 1070 and GUI 1072 is coded,e.g., color-coded, shade-coded, texture-coded, shape-coded, etc., todistinguish an activity level or a metric represented with the GUI 1070from an activity level or metric represented with the GUI 1072. Forexample, the GUI 1072 is coded as green and the GUI 1070 is coded asyellow to indicate the user 112A walked more steps on the calendar date992 than that walked on the calendar date 990. As another example, theGUI 1072 is color-coded differently than the GUI 1070 when a weightedcombination, e.g., a weighted sum, etc., of the metrics representedwithin the GUI 1070 is greater than a weighted combination of themetrics represented within the GUI 1072.

Any coding of a calendar GUI is performed by the processor of amonitoring device, the processor of the computing device 166, or theprocessor of the server 228. Moreover, a weighted combination of metricsof statistical metrics is calculated by the processor of a monitoringdevice, the processor of the computing device 166, or the processor ofthe server 228.

In several embodiments, a calendar GUI does not display metrics until anaction to display the metrics is received from the user 112A. Forexample, when the user 112A uses the user interface of a monitoringdevice or the input device of the computing device 166 to hover over orselect a description summarizing metrics, the metrics are displayedwithin the calendar GUI. An indication of hovering or the selection isreceived by the processor of a monitoring device or the processor of thecomputing device 166. Also, the displaying is performed by the processorof a monitoring device or the processor of the computing device 166.

In some embodiments, a calendar GUI does not display statistical metricsuntil an action to display the statistical metrics is received from theuser 112A. For example, when the user 112A uses the user interface of amonitoring device or the input device of the computing device 166 tohover over or select a description summarizing statistical metrics, thestatistical metrics are displayed within the calendar GUI. An indicationof hovering or the selection is received by the processor of amonitoring device or the processor of the computing device 166. Also,the displaying is performed by the processor of a monitoring device orthe processor of the computing device 166.

FIG. 14 is a diagram of an embodiment of the calendar 1002. The calendar1002 includes descriptions of metrics of activities performed by theuser 112A for a week ranging from Sunday, February 26 thru Saturday,March 3. For example, the calendar 1002 includes the descriptions 1004,1006, 1008, 1010 ₁, and 1010 ₂. In addition the calendar 1002 includesdescriptions “I drove a lot”, “I walked a lot”, and “I sat around” ofmetrics of activities performed by the user 112A on Thursday, March 1.Moreover, the calendar 1002 includes descriptions “I did not walk alot”, “I worked late”, and “I was up late” of metrics of activitiesperformed by the user 112A on Friday, March 2. The calendar 1002includes descriptions “I went for a run!”, “I drove a lot”, “I walked alot”, and “I sat around” of metrics of activities performed by the user112A on Saturday, March 3.

FIG. 15 is a diagram of an embodiment of the calendar 1004. The calendar1004 includes descriptions of summaries of metrics of activitiesperformed by the user 112A. Moreover, the calendar 1004 includesactivity identifiers 132B and 132D.

Each activity identifier of the calendar 1004 identifies a summary ofthe metrics for a calendar date. For example, the activity identifier132D indicates that the user 112A walked a lot on Sunday, February 28.As another example, the activity identifier 132B indicates that the user112A walked a lot on Saturday, March 3 and the activity identifier 132Dindicates that the user 112A played golf on Saturday, March 3. Asanother example, an activity identifier 1005 indicates that the user112A did not walk a lot on Monday, February 27.

Moreover, each location identifier identifies a summary of one or morelocations visited by the user 112A for a calendar date. For example, thelocation identifier 802 ₁ indicates that the user 112A spend most ofMonday, February 27 in his office.

In some embodiments, a summary of a location of a user on a calendardate is determined in a manner similar to determining a summary of anactivity performed by the user on the calendar date. For example, upondetermining that a majority of hours of a day are spent at home, asummary is generated indicating that the user spent most of his time onthe day at his home. The majority of hours and the location aredetermined based on geo-location data, the geo-location-locationdatabase, and times, which are measured by a time measurement device. Insome embodiments, the location is inferred from activity data. Thesummary of the location is determined by the processor of a monitoringdevice, the processor of the computing device 166, or the processor ofthe server 228. Examples of a summary of a location include “I was atwork most of my day”, “I was mainly at home today”, etc.

Upon determining a summary of a location of the user 112A on a calendardate, the calendar 1004 is populated with a location identifieridentifying the summary. The population of a calendar with the summaryof the location and with the location identifier is performed by theprocessor of a monitoring device, the processor of the computing device166, or the processor of the server 228.

Each activity identifier and each location identifier of the calendar1004 is generated by the processor of a monitoring device, the processorof the computing device 166, or the processor of the server 228.

The calendar 1004 includes an award identifier 1012 that identifies areward provided to the user 112 for achieving a milestone or a goal. Oneor more milestones are achieved to achieve a goal. In some embodiments,a milestone is a goal.

A goal is related to an activity, a location, or a time period, or acombination thereof. For example, a goal is to walk 20,000 steps athome. Another goal is to walk 20,000 steps today. Yet another goal is toburn an amount of calories by a date.

Similarly, a milestone is related to an activity, a location, or a timeperiod. For example, a milestone is to walk 100 steps in 15 minutes.Another milestone is to run 3 miles each day at a park.

An award identifier, e.g., a badge, etc., is generated by the processorof a monitoring device, the processor of the computing device 166, orthe processor of the server 228, when the processor determines that agoal or a milestone is achieved by the user 112A. The award identifier1012 is generated when the user 112A walked a lot on Sunday, February26.

FIG. 16 is a diagram of an embodiment of the calendar week 1014 and thecalendar week 1016. The calendar weeks 1014 and 1016 are parts of thestatistical calendar 1017, which is also a GUI. The calendar week 1014includes the description 1018 and the description 1020. Similarly, thecalendar week 1016 includes a description “I was up late” of astatistical metric, e.g., waking up after a time, etc., of an activity,e.g., waking up, etc., The calendar week 1016 also includes adescription “I sat around” of a statistical metric, e.g., caloriesburned, steps walked, etc., of an activity, e.g. walking, etc.

In various embodiments, a description of an activity performed by theuser 112A during the time horizon is identified using an activityidentifier. For example, an activity identifier 1021 is generated toindicate that the user 112A drove a lot during the week of February 27.An activity identifier identifying one or more activities performed bythe user 112A during the time horizon is generated by the processor of amonitoring device, the processor of the computing device 166, or theprocessor of the server 228.

In some embodiments, a summary of a location of a user during the timehorizon is determined in a manner similar to determining a summary of alocation of the user on a calendar date. For example, upon determiningthat a majority of hours of a week are spent at home, a summary isgenerated indicating that the user spent most of his time during theweek at his home. The majority of hours and the location during the timehorizon are determined based on geo-location data, thegeo-location-location database, and times, which are measured by a timemeasurement device. In some embodiments, the location is inferred fromactivity data. The summary of the location during the time horizon isdetermined by the processor of a monitoring device, the processor of thecomputing device 166, or the processor of the server 228. Examples of asummary of a location visited by the user 112A during the time horizoninclude “I was at work most of my week”, “I was mainly at home duringthis month”, etc.

Upon determining a summary of a location of the user 112A during thetime horizon, a calendar, the calendar 1014, the calendar 1016, etc., ispopulated with a location identifier identifying the summary. Thepopulation of a calendar with the summary of the location and with thelocation identifier associated with the time horizon is performed by theprocessor of a monitoring device, the processor of the computing device166, or the processor of the server 228.

Each activity identifier and each location identifier of the calendars1014 and 1016 is generated by the processor of a monitoring device, theprocessor of the computing device 166, or the processor of the server228.

The calendar 1014 includes an award identifier, e.g., an awardidentifier 1022 etc., that identifies a reward provided to the user 112for achieving a milestone or a goal during the time horizon. Forexample, the award identifier 1022 is generated when the user 112A drovea lot during the week of February 27. The award identifier is generatedbased on the statistical metric. For example, upon determining that theuser 112A achieved a milestone or a goal during the time horizon, anaward identified with an award identifier is generated and provided tothe user account 174 (FIG. 2A).

An award identifier associated with the time horizon is generated basedon the statistical metric by the processor of a monitoring device, theprocessor of the computing device 166, or the processor of the server228. For example, upon determining that the user 112A walked an averageof 10,000 steps a day for a week, an award identifier associated withthe week is generated. As another example, upon determining that theuser 112A ran 5 miles a day on average for two months, an award isprovided to the user 112A by generation of an award identifier.

In some embodiments, each of calendar GUI 1014 and GUI 1016 is coded,e.g., color-coded, shade-coded, texture-coded, shape-coded, etc., todistinguish an activity level or a metric represented with the GUI 1016from a statistical activity level or a statistical metric representedwith the GUI 1072. For example, the GUI 1014 is coded as yellow and theGUI 1016 is coded as red to indicate the user 112A was more activeduring the week of February 27 than that during the week of March 5. Asanother example, a first calendar GUI is color-coded differently than asecond calendar GUI when a weighted combination of statistical metricsrepresented within the first calendar GUI is greater than a weightedcombination of statistical metrics represented within the secondcalendar GUI.

In some embodiments, the user 112A is more active for a period of timecompared to another period of time when an activity level of the user112A for the period of time is greater than an activity level of theuser 112A for the other period of time. Similarly, in variousembodiments, the user 112A is more active for a time horizon compared toanother time horizon when an activity level of the user 112A for thetime horizon is greater than an activity level of the user 112A for theother time horizon.

FIG. 17 is a diagram of an embodiment of a GUI 1038. The GUI 1038includes a calendar GUI 1039 and a group of event data 1024 ₁, 1024 ₂,and 1024 ₃ in relation to the calendar GUI 1039. For example, the eventdata 1024 ₁, 1024 ₂, and 1024 ₃ is below the calendar GUI 1039. In someembodiments, the event data 1024 ₁, 1024 ₂, and 1024 ₃ is to the rightof the calendar GUI 1039, or to the left of the calendar GUI 1039, or atany other position with respect to the calendar GUI 1039.

FIG. 18 is a diagram of an embodiment of a GUI 1040. In the GUI 1040, agroup of event data 1036 ₁, 1036 ₂, and 1036 ₃ is generated in relationto, e.g., above, below, to the right of, to the left of, in any otherrelation, etc., a calendar GUI 1041.

In the GUI 1040, a map 1028 is overlaid on the event data 1036 ₂. Insome embodiments, the event data 1036 ₂ is overlaid on the map 1028.

The map includes a route 1030 recorded using a monitoring device duringperformance of activities by the user 112A. The route 1030 is onefollowed by the user 112A on a calendar date of Saturday, March 3.

In some embodiments, the route 1030 shows activities performed by theuser 112A on the route 1030 and locations visited by the user 112A onthe route 1030. For example, an activity shown on the route 1030 iscoded differently than another activity performed on the route 1030. Asanother example, a location on the route 1030 is coded differently thananother location on the route 1030.

When a selection of an activity level 1032 is received from the user112A via the user interface of a monitoring device or via the inputdevice of the computing device 166, the map 1028 is centered on alocation, e.g., a house, etc., at which an activity having the activitylevel is performed. The centering is performed by the processor of amonitoring device, the processor of the server 228, or by the processorof the computing device 166.

As shown in FIG. 18, the map 1028 is of a different dimension than theactivity data within event data. For example, activity levels 1029 and1031 within the event data 1036 ₂ are three-dimensional and the map 1028is two-dimensional. In some embodiments, the map 1028 isthree-dimensional and activity levels of event data are two-dimensional.In various embodiments, both the map 1028 and activity levels of eventdata are of the same dimension.

In some embodiments, the event data 1036 ₁, 1036 ₂, and 1036 ₃ aregenerated when a selection of a calendar date 1034 is received from theuser 112A via the user interface of a monitoring device or via the inputdevice of the computing device 166.

The event data of FIG. 18 is associated with the calendar date ofSaturday, March 3. For example, the event data of FIG. 18 shows activitylevels of the user 112A on March 3, location identifiers identifyinglocations visited by the user 112A on March 3, and activity identifiersidentifying activities performed by the user 112A on March 3.

Moreover, in some embodiments, upon receiving the selection of thecalendar date 1034, the map 1028 is displayed with respect to, e.g., isoverlaid on, is overlaid with, etc., the event data shown in FIG. 18.

FIG. 19 is a diagram of an embodiment of a system 1100 for filteringcalendar data based on filters provided by the user 112A.

The user 112A is wearing one or more track devices, e.g., a track device1, a track device 2, a track device n, where n is an integer greaterthan zero. The user 112A performs actions at one or more locations.Based on the actions and locations, activities A thru N are generated.Each activity A thru N includes one or more activity levels, e.g.,number of calories burned, number of steps taken, number of stairsclimbed, etc. The activities A thru N are plotted along a timeline thatincludes dates and/or times of day.

A data analysis engine 1102 parses the activities A thru N, thelocations at which the activities are performed, and dates/times atwhich the activities are performed at the locations. For example, thedata analysis engine 1102 determines that an activity is performed at alocation at a time on a calendar date.

A calendar data acquisition engine 1104 acquires, e.g., receives, reads,etc., the parsed activities, the parsed locations, and the parseddates/times from the data analysis engine 1102.

Within the user account 174 (FIG. 2A), the user 112A uses the userinterface of a monitoring device or the input device of the computingdevice 166 to provide filters and privacy settings to the user account174. Examples of the filters include dates of a calendar and a contextof activities performed by the user 112A. For example, the user 112Aprovides dates between U and V to filter a GUI to remove from a calendarGUI all activities performed by the user 112A and/or all locationsvisited by the user 112A between the dates U and V. As another example,the user 112A provides locations to remove all activities performed atthe locations by the user 112A from a calendar GUI. Examples oflocations to be removed include Las Vegas, Reno, sin city, etc. As yetanother example, the user 112A provides activities to be removed from acalendar GUI. Examples of activities to be removed include sleeping atwork, sedentary activity at work, etc.

As another example, the user 112A provides the privacy settings thatdetermine which group of people can view activities performed by theuser 112A and/or, locations visited by the user 112A. For example, theuser 112A designates that social network friends of the user 112A mayview activities performed by the user 112A in Las Vegas. As anotherexample, the user 112A designates that the user's work mates may viewactive activities performed by the user 112A at work. As yet anotherexample, the user 112A designates that the user 112A may view, byaccessing the user account 174, all activities performed by the user112A at all locations.

A user calendar associator 1106 associates a calendar GUI with thefilters and the privacy settings provided by the user 112A. For example,it is determined whether dates provided by the user 112A for filteringout are dates of a timeline of event data. As another example, it isdetermined whether activities provided by the user 112A to be filteredout are the same as those having metrics represented within a calendar.As yet another example, it is determined whether locations provided bythe user 112A to be filtered out are the same as locations identified bylocation identifiers within a calendar. As another example, it isdetermined whether activities provided by the user 112A to be filteredout are the same as activities identified by activity identifiers withina calendar.

A filter 1108 is applied to a calendar GUI to filter out activitiesand/or locations identified by the user 112A from a calendar GUI basedon the privacy settings. For example, upon determining that a calendaris to be shared online with work mates, activities related to beingsedentary at work, sleeping at work, etc., are filtered out from thecalendar. As another example, upon determining that a calendar is to beshared online with a social network family or social network friends,activities performed at some locations, e.g., Las Vegas, Reno, Atlanticcity, etc., are filtered out. As yet another example, upon determiningthat a calendar is to be accessed by the user 112A via the user account174, none of the activities and locations are filtered. In this example,no filtering of an activity and/or a location within a calendar GUI isperformed by the filter 1108.

A data interface 1110 receives the filtered activities and locationsfrom the filter 1108, and sends some of the filtered activities andlocations for populating a calendar B and some of the filteredactivities and locations for populating a calendar C. The data interface1110 sends all activities and locations received without any filteringfor populating a calendar A. The calendar A is a personal calendar ofthe user 112A and the calendar A is accessible to the user 112A via theuser account 174. The calendar B is another calendar of the user 112Aand the calendar is accessible by social network friends and/or socialnetwork family of the user 112A. The calendar C is yet another calendarof the user 112A and the calendar C is accessible by work mates or worksocial network friends of the user 112A.

It should be noted that in some embodiments, the data analysis engine1102, the calendar data acquisition engine 1104, the user calendarassociator 1106, and the filter 1106 are implemented within theprocessor of the server 228 and the data interface 1108 is implementedwithin the NIC of the server 228. For example, the data interface 1110sends filtered activities and locations to the wireless communicationdevice of a monitoring device or to a wired communication device of themonitoring device for populating a calendar displayed on a monitoringdevice. As another example, the data interface 1110 sends filteredactivities and locations to the NIC of the computing device 166 and thewireless communication device or a wired communication device of thecomputing device 166 sends the filtered activities and locations forpopulating a calendar displayed on a monitoring device.

In various embodiments, the data analysis engine 1102, the calendar dataacquisition engine 1104, the user calendar associator 1106, and thefilter 1106 are implemented within the processor of the computing device166 and the data interface 1108 is implemented within the wirelesscommunication device or a wired communication device of the computingdevice 166. For example, the data interface 1110 sends filteredactivities and locations to the wireless communication device of amonitoring device or to a wired communication device of the monitoringdevice.

In several embodiments, the data analysis engine 1102, the calendar dataacquisition engine 1104, the user calendar associator 1106, the filter1106, and the data interface 1110 are implemented within the processorof a monitoring device. In these embodiments, the data interface 1110sends the filtered activities and/or the filtered locations to a displaydevice of the monitoring device for populating a calendar with thefiltered locations and/or filtered activities.

In a number of embodiments, the user 112A accesses the user account 174to update a metric or a statistical metric that is represented in acalendar. For example, the user 112A selects an edit button besides ametric on a calendar GUI to change the metric. The selection is made bythe user 112A via the user interface of a monitoring device or via theinput device of the computing device 166. The updated metric or updatedstatistical metric is sent via the network 176 to the server 228. Theprocessor of the server 228 updates within the user account 174 themetric or the statistical metric based on the update received. Theserver 228 then sends the updated metric or the updated statisticalmetric via the network 176 to the computing device 166 or to amonitoring device to populate a calendar, e.g., calendar A, B, C, etc.,with the updated metric or the updated statistical metric.

FIG. 20 is a diagram of an embodiment of a system 1300 for generating ametric. The system 1300 includes a device locator 1302, a positionsensor 1304, a processor 1306, a transfer device 1308, and a displayscreen 1310.

Examples of the device locator 1302 include a device locator of amonitoring device or a device locator of the computing device 166.Examples of the processor 1306 include a processor of a monitoringdevice, a processor of the computing device 166, or a processor of theserver 228. Examples of the transfer device 1308 include a communicationdevice of a monitoring device, or a NIC of the computing device 166, ora communication device of the computing device 166, or a NIC of theserver 228. Examples of the display screen 1310 include a display screenof a display device of a monitoring device or a display screen of adisplay device of the computing device 166.

The device locator 1302 obtains location data 1312, e.g., geo-locations,etc., of a monitoring device or of the computing device 166.

In one embodiment, the position sensor 1304 determines one or morepositions of movement of a monitoring device or of the computing device166. The one or more positions are indicated as motion data 1314. Itshould be noted that a time at which the motion data 1314, e.g., aposition, another position, etc., is determined is a time of occurrenceof the motion data 1314. Moreover, in some embodiments, a time at whichthe location data 1312, e.g., a geo-location, another geo-location,etc., is determined is a time of occurrence of the location data 1312.

The motion data 1314 is associated with a time of occurrence and thelocation data 1312 of a monitoring device. For example, the locationdata 1312 includes one or more geo-locations at which one or morepositions of the motion data 1314 occur.

In some embodiments, the motion data 1314 is determined by the devicelocator 1302. For example, the device locator 1302 determines one ormore geo-locations of a monitoring device when carried, e.g., worn,held, wrapped around an arm, etc., by the user 112A. In this example,the motion data 1314 includes the geo-location data. The geo-locationsdetermined by the device locator 1302 provide positions of the user 112Aat various times.

In various embodiments, the motion data 1314 includes geo-locations andpositions of a monitoring device.

The processor 1302 receives the location data 1312 from the devicelocator 1302. Moreover, the processor 1302 receives the motion data 1314from the position sensor 1304 and/or the device locator 1302. Forexample, a processor of the server 228 receives data, e.g., the locationdata 1312, the motion data 1314, etc., from a communication device of amonitoring device via the network 176 and a NIC of the server 228. Asanother example, a processor of the computing device 166 receives data,e.g., the location data 1312, the motion data 1314, etc., from acommunication device of a monitoring device via the network 176 and acommunication device of the computing device 166.

The processor 1306 processes the received motion data 1314 to identify agroup of the motion data 1314 having a substantially commoncharacteristic. For example, the processor 1306 determines whether thereceived motion data 1314 includes common positions of a monitoringdevice over a period of time or a common amount of change in positionsof the monitoring device over a period of time. To illustrate the commonpositions, the processor 1306 determines whether the motion data 1314repeats one or more of the substantial same co-ordinates over a periodof time or repeats a pattern of co-ordinates over a period of time. Tofurther illustrate the repetition of one or more of the substantiallysame co-ordinates, when the user 112A is playing golf, the user 112Arepeats one or more of the same co-ordinates of a swing between anunderhand position and an overhand position over a period of time. Asanother illustration of the repetition of one or more of the substantialsame co-ordinates, when the user 112A is pitching while playingbaseball, the user 112A repeats one or more of the substantial sameco-ordinates between an overhand position and an underhand position overa period of time. As an illustration of the repetition of the pattern,when the user 112A is walking, a pattern of positions of the user 112Ais repeated at each step taken by the user 112A.

As an illustration of the common amount of change in positions of themonitoring device over a period of time, the processor 1306 determineswhether the motion data 1314 repeats substantially the same co-ordinateswithin a pre-determined standard deviation over a period of time orrepeats a pattern of co-ordinates within a pre-determined standarddeviation over a period of time. To further illustrate the repetition ofthe co-ordinates within a pre-determined standard deviation, when theuser 112A is playing golf, the user 112A repeats co-ordinates that liewithin a standard deviation that is pre-determined based on previousswings of the user 112A or of other users. As another illustration ofthe repetition of the co-ordinates within a pre-determined standarddeviation, when the user 112A is pitching while playing baseball, theuser 112A repeats co-ordinates that lie within a standard deviation thatis pre-determined based on previous pitches of the user 112A or of otherusers. As an illustration of the repetition of the pattern within apre-determined standard deviation, when the user 112A is walking, ateach step taken by the user 112A, a pattern of positions of the user112A is within a standard deviation of a pre-determined pattern ofwalking. The pre-determined pattern of walking is of the user 112A or ofother users.

The processor 1306 processes the location data 1312 for the group of themotion data. The group of motion data 1314 by way of processing thelocation data 1312 provides an activity identifier. For example, theprocessor 1306 determines one or more geo-locations of the user 112A atwhich the user 112A is performing an activity identified by the group ofmotion data 1312. To illustrate, the processor 1306 determines whetherthe user 112A has traveled a distance greater than a pre-determineddistance between two geo-locations in a period of time. In thisillustration, it is identified by the position sensor 1304 that the user112A is engaging in a repeatable pattern. In this illustration, it isdetermined that the user 112A is running The processor 1306 generates anactivity identifier that identifies an activity of running beingperformed by the user 112A. As another illustration, the processor 1306determines based on the geo-location-location database that the user112A is at a golf course. In this illustration, it is identified by theposition sensor 1304 that a motion of the user 112A repeats co-ordinatesbetween an underhand position and an overhand position within apre-determined standard deviation over a period of time. In thisillustration, it is determined that the user 112A is playing golf. Theprocessor 1306 generates an activity identifier that identifies anactivity of baseball being performed by the user 112A. As yet anotherillustration, the processor 1306 determines based on thegeo-location-location database that the user 112A is at a baseballfield. In this illustration, it is identified by the position sensor1304 that a motion of the user 112A repeats co-ordinates between anoverhand position and an underhand position within a pre-determinedstandard deviation over a period of time. In this illustration, it isdetermined that the user 112A is playing baseball. The processor 1306generates an activity identifier that identifies an activity of baseballbeing performed by the user 112A.

The motion data 1314 includes metric data that identifies detailedcharacteristics of the motion data 1314 for the activity identifier. Forexample, the motion data may include number of swings taken whileplaying golf, a number of steps taken by the user 112A while walking, ora number of steps taken by the user 112A while running, or a number ofstairs climbed by the user 112A while walking, or a number of stairsdescended by the user 112A while walking, or a number of stairs climbedby the user 112A while running, or a number of stairs descended by theuser 112A while running, or an amount of calories burned by the user112A while walking, or an amount of calories burned by the user 112Awhile running, an amount of calories burned by the user 112A whileperforming an activity, or an amount of distance traveled by the user112A while walking, or an amount of distance traveled by the user 112Awhile performing an activity, or an amount of hours slept by the user112A, or an amount of time for which the user 112A is active, or anamount of time for which the user 112A is passive, or an amount of timefor which the user 112A is sedentary, or an amount of time for which theuser 112A is at a location, or a time at which the user 112A wakes up,or a time at which the user 112A goes to bed, or an amount of time theuser 112A is performing an activity, or a combination thereof.

In some embodiments, to determine a number of stairs climbed by the user112A, a processor determines whether a change in an x position of an armof the user 112A occurs simultaneous with a change in a y position ofthe arm. Upon determining that the change in the x position occurssimultaneous with the change in the y position, the processor determinesa number of times the change in the y position has occurred. The numberof time is equal to a number of stairs ascended or descended by the user112A. The changes in the x and y positions are received by the processorfrom a position sensor.

In several embodiments, to determine whether the user 112A is ascendingor descending stairs, a processor determines whether a y2 position of anarm of the user 112A that occurs after an occurrence of a y1 position ishigher than the y1 position. Upon determining that the y2 position ishigher than the y1 position, the processor determines that the user 112Ais climbing stairs. On the other hand, upon determining that the y2position is lower than the y1 position, the processor determines thatthe user 112A is descending stairs. In another embodiment, an altimeterof the monitoring device or other portable device held, carried or wornby the user can detect altitude, which can be used to strengthen thedetermination of a metric.

The transfer device 1308 receives the activity identifier and the metricdata from the processor 1306 and sends the activity identifier and themetric data to a screen of a device for display. For example, thetransfer device 1308 sends the activity identifier and the metric datavia the network 176 to the NIC of the computing device 166 and theprocessor of the computing device 166 applies a rendering program todisplay the activity identifier and the metric data on the displaydevice of the computing device 166. As another example, the transferdevice 1308 sends the activity identifier and the metric data via thenetwork 176 to a communication device of a monitoring device and aprocessor of the computing device 166 applies a rendering program todisplay the activity identifier and the metric data on a display deviceof the monitoring device.

In some embodiments, the activity identifier is a GUI that receives aninput for rendering more or less of the detailed characteristics of themotion data. For example, when the activity identifier displayed on ascreen is selected by the user 112A via a user interface of a monitoringdevice or via an input device of the computing device 166, a number ofthe detailed characteristics displayed on the screen are reduced. Forexample, instead of an amount of time for which the user 112A walked onMonday, May 1 and an amount of calories burned by the user 112A by thewalking, the amount of time or the amount of calories are displayed on ascreen. As another example, instead of an amount of time for which theuser 112A walked on Monday, May 1 and an amount of calories burned bythe user 112A by the walking, a summary of the metric data is displayedon a screen. In this example, it may be summarized that the user 112Awalked a lot on Monday, May 1. As yet another example, in addition to anamount of time for which the user 112A walked on Monday, May 1 and anamount of calories burned by the user 112A by the walking, uponreceiving an input of an activity identifier, a summary of the metricdata for Monday, May 1 is displayed. In this example, it may bedisplayed that the user 112A walked a lot on Monday, May 1 and/or thatthe user 112A walked at a park and/or a time at which the user 112Astarted to walk and/or an amount of time the user 112A finished walking.

In some embodiments in which the processor 1306 and the display screen1310 are parts of the same device, e.g., a monitoring device, thecomputing device 166, etc., the transfer device 1308 does not couple theprocessor 1306 with the display screen 1310. In these embodiments, theprocessor 1306 is coupled to the display screen 1310.

In some embodiments, a method, system or combinations of methods andsystem are provided to gather and process metric data related to useractivity. The metric data can include captured or tracked motions,movements, travel or combinations thereof. The metric data that iscaptured can, from time to time, be transferred to one or more computingdevices. The computing devices can include those that are connected tothe Internet, where cloud processing can be performed in accordance withdefined logic and algorithms. The tracked data can take on many forms,such as tracked motions, tracked patterns of motions, tracked locationsassociated with the motions, and/or associated geo-location dataassociated with the tracked motions or activities.

Broadly speaking, the monitoring device, when worn by a user orheld/carried by a user will track activity data, which defines metricdata. The metric data may be associated to particular times of day andthen rendered on a graphical user interface. In one embodiment, themetric data is also correlated to location information. Each metric dataor groups of metric data can be graphically displayed in a way thatconveys location for the metric data. For example, the locationinformation can identify a place where certain tracked activityoccurred.

In one embodiment, the system will automatically group certain metricdata to particular events. An event, in one embodiment, defines a typeof activity and location for that activity. The event can be, forinstance, jogging in Central Park in New York City. In some embodiments,the metric data, which is automatically associated or related to anevent can provide information that is not accurate, information thatmight need fine tuning or information that the user does not want toshare or store with the tracked metric data.

In one example, if a user is tracked at a playground jogging, and theuser was supposed to be at a company meeting, the user may wish to editthe event or modify the metric for privacy concerns. Thus, the systemsand methods provide ways for editing, modifying, correcting, adjusting,or removing events tagged or identified for certain metric datacollected with the monitoring device. In one embodiment, some of thesefunctions can be performed using user interfaces provided with graphicaluser interfaces (GUI) and controls. The GUIs and controls can be on anydevice connected to the Internet or a network, or a device that cancommunicate with another device that has or can later obtain Internet ornetwork access.

FIG. 21 is a diagram of an embodiment of a system 1200 for editing ametric and changing a milestone based on the edited metric. The system1200 includes a metric editor 1202, an activity level modifier 1204, amilestone time modifier 1206, a location identifier modifier 1208, andan activity level modifier 1210. In some embodiments, each or selectedones of the metric editor 1202, the activity level modifier 1204, themilestone time modifier 1206, the location identifier modifier 1208, andthe activity level modifier 1210 may be implemented within a processorof a monitoring device, the processor of the computing device 166, orthe processor of the server 228. In some embodiments, the editor andmodifiers can be implemented as code, software or hardware and software.In some embodiments, the code or software can be implemented in firmwareof a device, where special digital signal processors (DSPs) are used,field programmable gate arrays (FPGAs), programmable logic devices(PLDs), or specialized circuits, logic, gates, transistors, chips, chipsets, batteries, clocks, etc.

The metric editor 1202 receives a change to a metric from the user 112A.For example, the user 112A accesses the user account 174 and edits ametric, e.g., an activity level, a time for which an activity isperformed, a time at which an activity is started by the user 112A, atime at which an activity is finished by the user 112A, a location atwhich an activity is performed, a type of activity, etc. The user 112Amay select an edit button displayed besides a metric on a GUI of amonitoring device or of the computing device 166 to edit the metric. Insome embodiments, the user 112A selects a metric that is displayed on aGUI to edit the metric. In various embodiments, a type of activityincludes a class of the activity.

The user 112A provides a change to a metric via the user interface of amonitoring device or via the input device of the computing device 166.The metric editor 1202 executes a change to a metric upon receiving thechange from the user 112A.

Any edits to a metric are communicated from the metric editor 1202 tothe activity level modifier 1204, the milestone time modifier 1206, thelocation identifier modifier 1208, and/or to the activity identifiermodifier 1210.

The activity level modifier 1204 changes an activity level that isdisplayed on a display device to represent the edited metric. Forexample, the activity level modifier 1204 increases or decreases anamplitude of the activity level 146 ₁ (FIG. 7A) to represent the editedmetric.

Moreover, the milestone time modifier 1206 modifies a remaining timeperiod of achievement of a milestone by the user 112A based on thechange in the activity level. In one embodiment, the entire time periodis allocated for achievement of the milestone by a processor. Forexample, the milestone modifier 1206 calculates a sum of activity levelsto be achieved during a remainder of a period of time. The sum iscalculated after one or more activity levels are changed by the activitylevel modifier 1204. The change in the sum after the change in theactivity levels changes the remainder time period of achieving themilestone.

In some embodiments, a milestone is a goal.

In various embodiments, a milestone is a sub-goal for achieving a goal.For example, a milestone to achieve a goal of walking 360,000 steps amonth is to walk 12,000 steps a day. As another example, a milestone toachieve a goal of losing 5 pounds in a month is to run for 20 minutes aday.

In some embodiments, a milestone is a number of times an activity isperformed in a time period or a sum of one or more activity levels ofone or more activities performed by the user 112A in a time period. Forexample, a milestone includes a number of walks per time period, or anumber of runs per time period, or a number of times the user 112Abicycled per time period, or a number of times the user 112A went to agym per time period, or a length of time that the user 112A is at workper time period, or a length of time for which the user 112A sleptduring a time period, or a change in weight of the user 112A per timeperiod, a weight to be achieved at an end of a time period, a number ofcalories to be burned at an end of a time period, or a change incalories of the user 112A per time period, or a combination thereof.

In various embodiments, a milestone is associated with a subset of anamount of time in which a goal is to be achieved. For example, when agoal is to be achieved in a month, each milestone is to be achieved in aday or a week. As another example, when a goal is to be achieved in ayear, a milestone is to be achieved in a week, or a month, or sixmonths, or ten months, etc.

In some embodiments, a milestone is provided to the user account 174 tobe achieved each day, or each week, or each month, or each year to helpthe user 112A identify good and bad habits and to help achieve alifestyle change in the life of the user 112A.

Examples of a goal include achieving an activity level of one or moreactivities within an amount of time. To illustrate, a goal may be toachieve a number of calories burned within a week. To furtherillustrate, a goal may be to achieve an amount of weight loss within amonth. As another illustration, a goal may be to run or walk a number ofsteps every day. As another example, a goal includes achieving anactivity level of one or more activities at one or more locations withinan amount of time. As yet another example, a goal includes achieving anactivity level of one or more activities at one or more locations.

Other examples of a goal include achieving an activity level at alocation within an amount of time. To illustrate, a goal may be to walka number of steps at work each day. As another illustration, a goal maybe to go to bed at 9 PM at home each night.

In some embodiments, a goal is associated with an activity that istrackable via a monitoring device. For example, a goal is to walk anumber of steps, which is trackable by the position sensor or the devicelocator of a monitoring device. As another example, a goal is to walk ata geo-location for an amount of time and the goal is trackable by thedevice locator and the time measurement device of a monitoring device.

A goal is provided by the user 112A via the user interface of amonitoring device or via the input device of the computing device 166.For example, the user 112A logs into a representation of the useraccount 174 to provide the goal.

A goal is received from the NIC of the computing device 166 and thenetwork 176 by the NIC of the server 228. In some embodiments, a goal isreceived from a communication device, e.g., wireless communicationdevice, wired communication device, etc., of a monitoring device via thenetwork 176 by the NIC of the server 228. In various embodiments, a goalis received by the processor of the computing device 166 from the inputdevice of the computing device 166.

In some embodiments, a goal is received by a communication device of thecomputing device 166 from a communication device of a monitoring device.

Continuing further with FIG. 21, upon receiving an edit to a metric fromthe metric editor 202, the location identifier modifier 1208 modifies alocation identifier that is associated with the metric that is edited.For example, when the metric editor 1202 indicates that an amount oftime spent by the user 112A at home of the user 112A is 0 minutesinstead of 10 minutes, the location identifier modifier 1208 removes alocation identifier that identifies a home of the user 112A for the 10minutes from a GUI. As another example, when the metric editor 1202indicates that the user 112A is at a home of the user 112A at a timeinstead of at a golf course, the location identifier modifier 1208changes a location identifier that indicates that the user 112A is athome to indicate that the user 112A is at the golf course at that time.As yet another example, when the metric editor 1202 indicates that theuser 112A is at a home of the user 112A between 9 AM and 10 AM insteadof between 12 PM and 1 PM, the location identifier modifier 1208 moves alocation identifier identifying that the user 112A is at his home frompointing between 12 PM and 1 PM to pointing between 9 AM and 10 AM.

Upon receiving an edit to a metric from the metric editor 1202, theactivity identifier modifier 1210 modifies an activity identifier thatis associated with the metric that is edited. As an example, when themetric editor 1202 indicates that an amount of time spent by the user112A playing a sport between 11 AM and 12 PM is 0 minutes instead of 20minutes, the activity identifier modifier 1210 removes from a GUI anactivity identifier that identifies the activity of sport beingperformed for the minutes by the user 112A. As another example, when themetric editor 1202 indicates that the user 112A is walking instead ofbeing sedentary at a time, the activity identifier modifier 1210 changesan activity identifier that indicates that the user 112A is beingsedentary to indicate that the user 112A is walking at that time. As yetanother example, when the metric editor 1202 indicates that the user112A is playing golf between 2 PM and 3 PM instead of between 12 PM and1 PM, the activity identifier modifier 1210 moves an activity identifieridentifying that the user 112A is playing golf from pointing between 12PM and 1 PM to pointing between 2 PM and 3 PM.

In some embodiments, a processor applies adaptive learning of locations.For example, a processor determines that a user is at a location and/orachieves an activity level of an activity at the location for a numberof times greater than a pre-determined number. The processor furtherdetermines a range of times at which the user is at the location for thenumber of times and/or achieves the activity level at the location. Whenthe user visits the location on a day after the processor determines therange of times, the processor determines whether a time at which theuser visits the location falls within the range of times. Upondetermining that the time at which the user visits the location at atime that falls within the range of times, the processor determines thatthe user is at the location and/or will achieve the activity level atthe location.

In several embodiments, a processor applies refined learning of locationand size. For example, a processor determines that the user 112A visitsan inside the user's home and determines that one or more geo-locationswithin the inside of the home corresponds to the home. In this example,the processor determines that the one or more geo-locations within theinside of the home corresponds to the home based on thegeo-location-location database or based on a selection received from theuser indicating that the geo-locations correspond to the home. In thisexample, a processor determines that the user 112A visits a backyard ofthe user's home and determines that one or more geo-locations of thebackyard of the home correspond to the home. In this example, theprocessor determines that one or more geo-locations of the backyardcorresponds to the home based on the geo-location-location database orbased on a selection received from the user indicating that thegeo-locations correspond to the home. When the user visits ageo-location within the backyard or the inside of the home for a nexttime, the processor determines that the user is at his/her home. Itshould be noted that although home is used as an example, in someembodiments, other locations, e.g., a gym, a work place, a golf course,a race track, etc., may be used.

In several embodiments, a processor determines a favorite route of auser based on a number of times the user follows the route. For example,a processor determines that a user follows a route for greater than apre-determined number of times. In this example, the processordetermines that the route is a favorite route of the user. In thisexample, the processor determines data associate with the route, e.g., astatistical amount of time taken to complete the route, or a locationclose to the route, or a destination of the route, or a combinationthereof, etc. In some embodiments, the processor determines thedestination of the route from a maps service or from thegeo-location-location database. Examples of the statistical amount oftime taken to complete the route include an average amount of time tocomplete the route, a maximum amount of time to complete the route, aminimum amount of time taken to complete the route, etc. In thisexample, the processor labels, within a GUI, the route with the dataassociated with the route. To illustrate, the processor labels a routeas “walk to a train” instead of “walk”. As another illustration, theprocessor labels a route as “morning walk to work” instead of “walk”. Asanother illustration, the processor labels a route as “3 mile run downCedar street” instead of “run”. As another illustration, the processorlabels a route as “6 mile beach run” instead of “run”. Examples of theroute include a dog walking route, a commute to work route, a runningroute, a route to a bus station, a route to a train station, a route towork, a route to home, a route to a friend's home, etc.

In some embodiments, a processor quantifies an emotional response when auser is responsive to a piece of entertainment. The emotional responseincludes a combination of the HRV and/or the GSR. Based on the emotionalresponse, the processor assigns a rating to the piece of entertainment.For example, when the HRV and/or the GSR indicate to the processor thatthe user is sleeping during a movie, the processor assigns a low ratingto the movie. On the other hand, when the HRV and/or the GSR indicate tothe processor that the user is excited during the movie, the processorassigns a high rating to the movie. Based on the HRV and/or the GSR, theprocessor determines a type of the piece of entertainment that the userlikes. In some embodiments, the processor prompts a user to provide therating. The piece of entertainment may be a movie, an opera, a ballet, aconcert, a song, a multimedia presentation, a television show, news,etc. Examples of a type of the piece of entertainment include a horrorpiece, an action piece, a drama piece, a sad piece, a comedy piece, etc.

In various embodiments, a processor determines that a user is at alocation at which the piece of entertainment is presented, e.g.,publicly displayed, shown, etc., and displays within a GUI that includesevent data information regarding the location. For example, a processordetermines that a user is at a movie theater and populates a GUI withshow times of movies at the theater. The show times of the movies areobtained from a website or a database that is used to present the showtimes. Other examples of information regarding the location includevideo games available at a theater, types of food available at aconcert, etc.

In various embodiments, a processor determines motion and locationfeatures from users to build a network database. For example, theprocessor determines that a user performs an activity at a location fora number of times and performs a motion signature that identifies theactivity for the number of times. The motion signature is a motion of auser that is substantially repeated over a time period. For example, afirst swimming motion when the user is at a swimming pool in a gym isperformed on day 1 and a second swimming motion when the user is at theswimming pool at the gym is performed on day 2. The first and secondmotions are within a standard deviation. When the user visits, e.g.,enters, etc., the location at another time, e.g., day 3, etc., theprocessor determines that the user is going to perform the same activitythat the user has performed for the number of times. For example, theprocessor determines based on the motion signature and the locationvisited for the number of times as soon as the user enters a gym thatthe user will swim at the gym. As another example, the processordetermines that the user will do yoga at a yoga place based on themotion signature and the location visited for the number of times.

It should be noted that in some embodiments, any method or function oroperation that is described herein as being performed by the processor226 of the monitoring device 108A (FIG. 3A) or by the processor 234 ofthe computing device 166 (FIG. 5) may be performed by the processor 302(FIG. 3B) of the monitoring device 108B or by the processor 190 (FIG.2A) of the server 228.

In various embodiments, functions or methods or operations describedherein as being performed by a processor of a device are performed byone or more processors of the device. For example, a function ofdisplaying a GUI is performed by a GPU (not shown) of the monitoringdevice 108A instead of by the processor 234 (FIG. 3A).

In a number of embodiments, any GUI, described herein, is generated by avirtual machine, the processor of the server 228, the processor of amonitoring device, the processor of the computing device 166, aprocessor of a server of the network 176, a GPU of the computing device166, a GPU of a monitoring device, or a combination thereof.

In a number of embodiments, all GUIs, described herein, are accessed bythe user 112A when the user 112A accesses the user account 174 (FIG.2A).

In various embodiments, a web page is a GUI.

It should be noted that although a limited number of identifiers areshown in Figures described herein, in some embodiments, any number ofidentifiers are used.

Embodiments described in the present disclosure may be practiced withvarious computer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers and the like. Severalembodiments described in the present disclosure can also be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a wire-based or wirelessnetwork.

With the above embodiments in mind, it should be understood that anumber of embodiments described in the present disclosure can employvarious computer-implemented operations involving data stored incomputer systems. These operations are those requiring physicalmanipulation of physical quantities. Any of the operations describedherein that form part of various embodiments described in the presentdisclosure are useful machine operations. Several embodiments describedin the present disclosure also relates to a device or an apparatus forperforming these operations. The apparatus can be specially constructedfor a purpose, or the apparatus can be a computer selectively activatedor configured by a computer program stored in the computer. Inparticular, various machines can be used with computer programs writtenin accordance with the teachings herein, or it may be more convenient toconstruct a more specialized apparatus to perform the requiredoperations.

Various embodiments described in the present disclosure can also beembodied as computer-readable code on a non-transitory computer-readablemedium. The computer-readable medium is any data storage device that canstore data, which can be thereafter be read by a computer system.Examples of the computer-readable medium include hard drives, networkattached storage (NAS), ROM, RAM, compact disc-ROMs (CD-ROMs),CD-recordable (CD-Rs), CD-rewritable's (RWs), magnetic tapes and otheroptical and non-optical data storage devices. The computer-readablemedium can include computer-readable tangible medium distributed over anetwork-coupled computer system so that the computer-readable code isstored and executed in a distributed fashion.

Although the method operations were described in a specific order, itshould be understood that other housekeeping operations may be performedin between operations, or operations may be performed in an order otherthan that shown, or operations may be adjusted so that they occur atslightly different times, or may be distributed in a system which allowsthe occurrence of the processing operations at various intervalsassociated with the processing, as long as the processing of the overlayoperations are performed in the desired way. For example, the operations104 and 118 in FIG. 6A are performed simultaneously or the operation 118is performed before the operation 104. As another example, theoperations 202 and 204 of FIG. 6D are performed simultaneously or theoperation 204 is performed before performing the operation 202. As yetanother example, the operation 223 of FIG. 6F may be performed before,or after, or simultaneous with the performance of the operation 229.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, it will be apparent thatcertain changes and modifications can be practiced within the scope ofthe appended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the variousembodiments described in the present disclosure is not to be limited tothe details given herein, but may be modified within the scope andequivalents of the appended claims.

What is claimed is:
 1. A server system comprising: one or moreprocessors for: receiving geo-location data of an activity trackingdevice when worn by a user, the user having a user account that has theactivity tracking device associated therewith, the user account isaccessible on a website; receiving motion data of the activity trackingdevice, the motion data is associated with a time of occurrence ofmotion of the activity tracking device when worn by the user and withthe geo-location data of the activity tracking device; processing thereceived motion data and the received geo-location data to characterizean activity for the motion data and an amount of the activity, theactivity being assigned to a place of occurrence of the activity using acombination of the received geo-location data and the received motiondata; and associating the characterization of the activity, the amountof the activity, and the place of occurrence of the activity to the useraccount of the user; and a memory device coupled to the processor, thememory device for storing the characterization of the activity, theamount of the activity, and the place of occurrence of the activity. 2.The server system of claim 1, wherein the one or more processors areconfigured to generate a text summary of a metric based on thecharacterization of the activity and the amount of the activity.
 3. Theserver system of claim 1, wherein the geo-location data includes alatitude of the activity tracking device, or a longitude of the activitytracking device, or an altitude of the activity tracking device, or acombination thereof.
 4. The server system of claim 1, wherein theactivity tracking device includes a watch, or a wristband, or abracelet, or a clip.
 5. The server system of claim 1, wherein the one ormore processors are configured to provide access to the user account toview the characterization of the activity and the amount of theactivity.
 6. The server system of claim 1, wherein the one or moreprocessors are configured to provide access to the user account to viewthe characterization of the activity, the amount of the activity, andthe place of occurrence.
 7. The server system of claim 1, wherein themotion data includes one or more positions of the activity trackingdevice.
 8. The server system of claim 1, wherein the motion data isassociated with the time of occurrence of motion of the activitytracking device when an amount of time at which a number of positionsreached by the activity tracking device is monitored.
 9. The serversystem of claim 1, wherein the one or more processors are configured todetermine whether the place of occurrence is consistent with thecharacterization of the activity.
 10. The server system of claim 1,wherein the one or more processors are configured to determine adistance covered by the motion relative to the time of occurrence of themotion of the activity tracking device.
 11. The server system of claim1, wherein the one or more processors are configured to match thecharacterization of the activity with the place of occurrence when theone or more processors determine that the place of occurrence isconsistent with the characterization of the activity.
 12. The serversystem of claim 1, wherein the one or more processors are configured toallow the characterization of the activity, the amount of the activity,and the place of occurrence to be accessed via the user account.
 13. Theserver system of claim 1, wherein the one or more processors areconfigured to allow via the user account filtering of one or more placesof occurrence visited by the user while performing the activity.
 14. Theserver system of claim 1, wherein the one or more processors areconfigured to allow via the user account a selection of user groups whocan view the activity and the place of occurrence.
 15. The server systemof claim 1, wherein the one or more processors are configured to receivethe geo-location data and the motion data from the activity trackingdevice.
 16. The server system of claim 1, wherein the one or moreprocessors are configured to receive the geo-location data and themotion data from the activity tracking device via a network.
 17. Anactivity tracking device comprising: a device locator for determininggeo-location data when the activity tracking device is worn by a user,the user having a user account accessible via a website; a positionsensor for determining motion tracking data when the activity trackingdevice is worn by the user, the motion tracking data is associated witha time of occurrence of a motion of the activity tracking device whenworn by the user and the geo-location data of the activity trackingdevice; a processor for processing the motion tracking data and thegeo-location data to characterize an activity for the motion trackingdata and an amount of the activity, the activity being matched to aplace of occurrence of the activity using a combination of thegeo-location data and the motion tracking data; and a communicationdevice for sending the characterization of the activity, the amount ofthe activity, and the place of occurrence for association with the useraccount of the user.
 18. The activity tracking device of claim 17,wherein the geo-location data includes a latitude of the activitytracking device, or a longitude of the activity tracking device, or analtitude of the activity tracking device, or a combination thereof. 19.The activity tracking device of claim 17, wherein the processor isconfigured to generate a sentence summary of a metric based on thecharacterization of the activity and the amount of the activity.
 20. Amonitoring device comprising: a device locator for obtaining one or moregeo-locations of a monitoring device when used by a user; a positionsensor for determining one or more spatial positions of the monitoringdevice; a time measurement device for determining one or more times ofoccurrence corresponding to the spatial positions and the geo-locations;and a processor for generating metric data based on the times ofoccurrence, the geo-locations, and the spatial positions, wherein themetric data includes levels of an activity performed by the user,wherein the levels include an amount of stairs ascended by the user, oran amount of stairs descended by the user, or an amount of steps walkedor ran by the user, or an amount of calories burned by the user, or anamount of distance traveled by the user, or an amount of hours slept bythe user, or an amount of time for which the user is active, or a timeat which the user wakes up, or a time at which the user goes to bed, oran amount of time spent by the user at a location, or an amount of timetaken by the user to perform the activity, or a combination thereof. 21.The monitoring device of claim 20, wherein the processor is configuredto generate a description summarizing the metric.
 22. The monitoringdevice of claim 20, wherein the processor is configured to determine astatistical metric of the activity performed at a location over a timehorizon based on the times of occurrence.
 23. The monitoring device ofclaim 22, wherein the processor is configured to generate a descriptionsummarizing the statistical metric.
 24. A server system comprising: oneor more processors for receiving one or more geo-locations of amonitoring device, the monitoring device usable by a user, the one ormore processors for receiving one or more spatial positions of themonitoring device, the one or more processors for receiving one or moretimes of occurrence corresponding to the spatial positions and thegeo-locations, the one or more processors for determining activity databased on the times of occurrence, the geo-locations, and the spatialpositions, the activity data including metric data that includes one ormore activity levels, the activity data including one or more classes ofactivities detected by the monitoring device, the one or more processorsfor determining one or more locations of the monitoring device based onthe times of occurrence, the geo-locations, and the spatial positions, amemory device coupled to the one or more processors for storing the oneor more locations, wherein the activity levels include an amount ofstairs ascended by the user, or an amount of stairs descended by theuser, or an amount of steps walked or ran by the user, or an amount ofcalories burned by the user, or an amount of distance traveled by theuser, or an amount of hours slept by the user, or an amount of time forwhich the user is active, or a time at which the user wakes up, or atime at which the user goes to bed, or an amount of time spent by theuser at the locations, or an amount of time taken by the user to performan activity, or a combination thereof.
 25. The server system of claim24, wherein the one or more processors are configured to generate adescription summarizing the metric data.
 26. The server system of claim24, wherein the one or more processors are configured to determine astatistical metric of one or more activities performed at the locationsover a time horizon based on the times of occurrence.
 27. The serversystem of claim 26, wherein the one or more processors are configured togenerate a description summarizing the statistical metric.
 28. Theserver system of claim 24, wherein the one or more processors areconfigured to map a portion of the spatial positions to one of theactivities.
 29. The server system of claim 24, wherein the monitoringdevice is wearable as a watch, or a wrist band, or a clip.
 30. Theserver system of claim 24, wherein the spatial positions include one ormore positions that indicate a motion of the monitoring device.